<?xml version="1.0" encoding="UTF-8" ?><rdf:RDF 
  xmlns="http://purl.org/rss/1.0/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xml:lang="ja">
  <channel rdf:about="http://w.atwiki.jp/ekuserutoka/">
    <title>ekuserutoka @ ウィキ</title>
    <link>http://w.atwiki.jp/ekuserutoka/</link>
    <atom:link href="https://w.atwiki.jp/ekuserutoka/rss10.xml" rel="self" type="application/rss+xml" />
    <atom:link rel="hub" href="https://pubsubhubbub.appspot.com" />
    <description>ekuserutoka @ ウィキ</description>

    <dc:language>ja</dc:language>
    <dc:date>2017-05-26T08:32:16+09:00</dc:date>
    <utime>1495755136</utime>

    <items>
      <rdf:Seq>
                <rdf:li rdf:resource="https://w.atwiki.jp/ekuserutoka/pages/1.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/ekuserutoka/pages/2.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/ekuserutoka/pages/21.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/ekuserutoka/pages/20.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/ekuserutoka/pages/19.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/ekuserutoka/pages/18.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/ekuserutoka/pages/17.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/ekuserutoka/pages/13.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/ekuserutoka/pages/16.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/ekuserutoka/pages/15.html" />
              </rdf:Seq>
    </items>
	
		
    
  </channel>
    <item rdf:about="https://w.atwiki.jp/ekuserutoka/pages/1.html">
    <title>トップページ</title>
    <link>https://w.atwiki.jp/ekuserutoka/pages/1.html</link>
    <description>
      トップページだよ

Excelのリンクの管理と格納（ワークブックの移動で起きるリンクエラーの仕組み）
http://addinbox.sakura.ne.jp/Excel_Tips21.htm    </description>
    <dc:date>2017-05-26T08:32:16+09:00</dc:date>
    <utime>1495755136</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/ekuserutoka/pages/2.html">
    <title>メニュー</title>
    <link>https://w.atwiki.jp/ekuserutoka/pages/2.html</link>
    <description>
      **メニュー
-[[トップページ]]
-[[メニュー]]
-[[メニュー2]]

----

**職場で作ろう複数ファイル内検索機能
*Javascript&amp;jqery編
-[[職場で作ろう複数ファイル内検索機能 Javascript&amp;jqery編]]
-[[jquery-1.7.2.min.js]]
-[[jquery.csv2table-0.02-b-4.8.js]]
-[[jquery.jqchart-0.03-beta-1.1.js]]
-[[index.html]]
-[[VBA_ブック内の全シートを一括してCSV化する]]
-[[VBA_テキストファイル&amp;CSV to UTF-8N]]
*エクセルファイル編
-[[複数ファイル内情報検索参照システム エクセルファイル編]]
----
-[[新しい人]]
----

**リンク
-[[@wiki&gt;&gt;http://atwiki.jp]]
-[[@wikiご利用ガイド&gt;&gt;http://atwiki.jp/guide/]]

// リンクを張るには &quot;[&quot; 2つで文字列を括ります。
// &quot;&gt;&quot; の左側に文字、右側にURLを記述するとリンクになります


//**更新履歴
//#recent(20)

&amp;link_editmenu(text=ここを編集)    </description>
    <dc:date>2017-05-23T01:42:18+09:00</dc:date>
    <utime>1495471338</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/ekuserutoka/pages/21.html">
    <title>新しい人</title>
    <link>https://w.atwiki.jp/ekuserutoka/pages/21.html</link>
    <description>
      ■新人向け案内
※通例、一例として記載。
　状況によっては適応されない場合がある。
　
・タイムスケジュール（一例）
　10:00　作業開始
　13:00　前半進捗確認、仮まとめ
　
　昼休憩（大体13:15～14:00）
　
　14:00　作業再開
　
　小休憩（大体16:15～16:30）
　
　17:00位　当日進捗確認、まとめ
　（進捗まとめ役以外は作業続行）
　（報告が必要なものはこの時間帯までに記述）
　
　17:50　片付け
　
　18:00　作業終了

0：案件内の運用ルール
・WBの記載への書き込みについて
　更新が重なると反映されないため、書き込む際は全体に周知。
　※誤った操作をした場合は焦らずまとめ、管理に報告。

・サーバ構造
　よくアクセスする場所
　・作業用：作業用ファイルがある
　・資料：現行、最新の資料がある
　・作業者用：割り振り内での受け渡しなど個々人でのやり取りなどに使用している

・作業上の質問や疑問について
　同じ作業をしている人　→　役割内まとめ役　→　リーダー陣

・検証の報告、質問について
　ログで報告済、WBに準備中を確認（念のため準備中の人に内容を確認）

1：検証開始前
・オンライン会議に参加
　作業割当、連絡事項などを確認する。

・最新の資料、データ集を準備
　サーバから必要な資料をローカルに持ってくる。

・作業用ファイルを準備
　サーバから必要な作業用ファイルをローカルに持ってくる。

・端末の準備
　検証端末、検証環境を準備する。

2：検証作業開始
・割当、割り当て内部の指示にしたがって検証開始。

2-1：追加人物検証
2-2：追加精神検証
2-3：催し動作検証
2-4：催し特別動作検証
2-5：その他特別検証

主な検証作業
・表示系
　テキスト
　グラフィック
・動作系
　システム

----------
■検証方法仮まとめ
システム・戦闘系

・数値変動系
『変動前』と『変動後』の数値を確認する。
その際、変動対象の値と連動して出力される数値がある場合、
正しく計算が行われているか検証にて確認すること。

例）
数値Aの変動：+50
変動前：100
変動後：150

数値Aと連動して変化する数値B（ここでは数値Cは50固定とする）
数値A-数値C（50）　＝　数値B
数値A変動前：数値B　＝　50
数値A変動後：数値B　＝　150

エビデンステンプレート
1：前提条件、及び状況
2：変動前、変動後の検証結果比較

例）
人物A（人物Aの状態）に装置B（装置Bの状態）を装着。

『たかしR5/水準99/.../数値A：2500』に
『装置B/水準1』を持って
『叩く/水準10』を
『まさるR3/水準5/../数値B：500』に行った際の数値Cの値

変動前数値C：50
変動後数値C：100

・主な検証向け場所
はじめさん
『のびる』水準1：150　水準10：225


1-1　数値B：400
7-4　紳士/水準20
EX-1-1　鳥/水準30

その他、現行の催しにて確認    </description>
    <dc:date>2017-05-23T01:41:20+09:00</dc:date>
    <utime>1495471280</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/ekuserutoka/pages/20.html">
    <title>複数ファイル内情報検索参照システム エクセルファイル編</title>
    <link>https://w.atwiki.jp/ekuserutoka/pages/20.html</link>
    <description>
      ■複数ファイル内情報検索参照システム
エクセルファイル編

■前提
・フォルダ、ファイル構造
検索用ファイルとデータファイルは同一フォルダ階層、または１層以内の近い階層とする。
※外部ファイル参照のリンク（またはパス）を統一し、リンク切れを起こさないことが目的。
　例）
　　dir　┬　検索用ファイル
　　　　 ├　データファイルA
　　　　 ├　データファイルB

　　　　 └　データファイルZ

　　dir　┬　検索用ファイル
　　　　 └　dataフォルダ
　　　　　　　├　データファイルA
　　　　　　　├　データファイルB

　　　　　　　└　データファイルZ

※外部リンクをエクセル内で保持、または変更可能ならリンク切れはある程度回避可能になる。
　例）
　　現環境のパスを「パス指定セル」に入力しておく。
　　外部ファイル参照パスに「パス指定セル」の値を代入し、リンク状態を保つ。

　　例1）参照ファイルが同階層にある場合
　　　パス指定セル：A1：...\デスクトップ\dir\
　　　外部参照セル：B2：... &amp; A1 &amp; データファイルAのシート1のセルC3
　　※VLOOKUP関数、INDIRECT関数の組み合わせで行けるかもしれない？

■ファイル内構成
シート01：概要・説明・設定
シート02：人物フォーム1（簡易・全域データ）
シート03：人物詳細1
シート04：人物フォーム2（簡易・全域データ）
シート05：人物詳細2
　シートXX：人物A　VS　人物B　計算シート
シート06：精神（詳細）
　・繋がりも含む
シート07：技（詳細）
シート08：才能（詳細）
　・主導才能　・個人才能
シート09：繋がり（詳細）
　・人物繋がり　・特徴繋がり

■シート01：概要・説明・設定
・使い方
・注意
・設定
　//パス指定
//・実装状況などの確認事項

■シート02&amp;シート04：人物フォーム（簡易・全域データ）
※必要な情報のみを整形し、表示することが目的
・人物検索フォーム
　入力方法：直接入力
　　　　　　プルダウン//実装に時間がかかりそうなのでなし？
　直接入力
　　人物コード：XXX
　　ヴァージョンコード：X
　　繋ぎ文字：_
　　希少コード：XX

　例）
　　青井明人（子供）：　100　0　_　01　→　1000_01
　　青井明人（大人）：　100　1　_　02　→　1001_02
・参照先
　・人物データ集

・参照データ
※リレーションデータは基本的に「ID/名前/効果：min &amp; max」を表示
　・ID
　・名前
　・属性
　・希少度
　//・実装状況/実装箇所
　・技（所持：通常/特別/超特別）（min/max）　//可能なら精神技(X to Y)も表示
　　参照データ
　　　use:人物データ集＞技セル　ace:技データ集
　・主導才能（min/max）
　　　use:人物データ集＞主導才能セル　ace:主導才能データ集
　・個人才能
　　　use:人物データ集＞個人才能セル　ace:個人才能データ集
　・特徴
　・人物繋がり
　　　use:人物コード　ace:人物繋がりデータ集
　・特徴繋がり
　　　use:人物データ集＞特徴セル　ace:特徴繋がりデータ集
　…etc

■シート03&amp;シート05：人物詳細
・人物詳細検索フォーム
　人物フォームと連動
　・ID
　・名前
　//・能力設定　成長度から現在能力値を導き、他の変動要素を加えて表示させる

　・成長変動表（min/max）
　　　use:人物検索フォーム　ace:人物繋がりデータ集
　　　　ワイルドカードを使用して参照ファイルを指定。
　　　　例）　* &amp; 人物検索フォーム &amp; 拡張子
　//・増幅変動表（min/max:limit）
　　　//use:人物データ集＞増幅セル　　ace:???
　//・樹木変動表（各項目数毎にmin/max）

//■シートXX：VSシート
//・人物A　VS　人物B　
//状態指定ができればいいな

■シート06：精神
・精神検索フォーム
　直接入力
　　頭文字：seisin
　　繋ぎ文字：_
　　精神区分コード：XXXX

　例）
　　昨日の夕食：　seisin　_　0516　→　seisin_0516

　制限指定　//実装方法検討中
　　プルダウン指定
　　　・属性A
　　　・属性B
　　　・属性C
　　　・人物名
　　　・精神技

・参照データ
　・ID
　・名前
　・種類（能力 or 技）
　・制限（属性 or 人物）
　・能力効果（min/max）
　//・技効果（min/max）
　・同数変化（2/3/4）

■シート07：技（詳細）
・技検索フォーム
　直接入力
　　頭文字：waza
　　繋ぎ文字：_
　　人物コード：XXX
　　繋ぎ文字：_
　　技コード：XX

　例）
　　パンチ：　waza　_　100　_　01　→　waza_100_01

・参照データ
※基本的にデータファイルの情報を整形して表示する。

■シート08：才能（詳細）
・主導才能
　・検索フォーム
　　//...
　・参照データ
　//基本的にデータファイルの情報を整形して表示する。

・個人才能
　・検索フォーム
　　//...　　
　・参照データ
　//基本的にデータファイルの情報を整形して表示する。

■シート09：繋がり（詳細）
・人物繋がり
　・検索フォーム
　　//...
　・参照データ
　//基本的にデータファイルの情報を整形して表示する。

・特徴繋がり
　・検索フォーム
　　//...
　・参照データ
　//基本的にデータファイルの情報を整形して表示する。    </description>
    <dc:date>2017-05-17T00:43:19+09:00</dc:date>
    <utime>1494949399</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/ekuserutoka/pages/19.html">
    <title>職場で作ろう複数ファイル内検索機能 Javascript&amp;jqery編</title>
    <link>https://w.atwiki.jp/ekuserutoka/pages/19.html</link>
    <description>
      ■職場で作ろう複数ファイル内検索機能
Javascript&amp;jqery編

■要件定義
エクセルで作成されたテーブルデータの視認性、検索性を向上させたい。

・視認性：
ノイズの削除。
別ファイルにある関連データを１画面に表示。

・検索性：
ノイズの削除。
必要な情報のみを参照し、リレーションデータの確認時間を短縮。

■前提条件
・外部通信をしない。
・外部からプログラム、ツールの持ち込み、ダウンロードをしない。
・ローカルで完結させる。

■実行手段
・ブラウザ上で行う。
HTML（Javascript、JQUERY）
CSVファイル

■実装機能
・検索機能（または絞込）
基本；ID、名前
※日本語が使えない場合、英字表記のみで行う。

■作成
※テキストエディタなどのツールが導入できれば、時間短縮可能だが、基本やらない。
１：HTML、Javascriptを準備
HTMLファイル、Javascriptファイルを作成。
　文字コード：UTF-8
　BOM：無し

案１：メモ帳+コマンドライン
案２：Excel+VBA（マクロ作成）

２：CSVファイル変換
　文字コード：UTF-8
　BOM：無し

案１：コマンドライン変換（バッチ作成込）
案２：Excel+VBA（マクロ作成）    </description>
    <dc:date>2017-05-17T00:31:06+09:00</dc:date>
    <utime>1494948666</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/ekuserutoka/pages/18.html">
    <title>VBA_テキストファイル&amp;CSV to UTF-8N</title>
    <link>https://w.atwiki.jp/ekuserutoka/pages/18.html</link>
    <description>
      http://tonari-it.com/vba-manual/    </description>
    <dc:date>2017-05-10T22:42:06+09:00</dc:date>
    <utime>1494423726</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/ekuserutoka/pages/17.html">
    <title>VBA_ブック内の全シートを一括してCSV化する</title>
    <link>https://w.atwiki.jp/ekuserutoka/pages/17.html</link>
    <description>
      //xlsVBA
//http://www.h-fj.com/blog/archives/2014/01/07-105447.php
//multiexport.xlsm!ExportFilesToCSV

Rem Attribute VBA_ModuleType=VBAModule
Sub Module1
Rem Option Explicit
Rem 
Rem Sub ExportFilesToCSV()
Rem     ExportFiles xlCSV
Rem End Sub
Rem 
Rem Sub ExportFilesToTSV()
Rem     ExportFiles xlText
Rem End Sub
Rem 
Rem Sub ExportFiles(frm As XlFileFormat)
Rem     &#039; ブックが保存済みでない場合は保存
Rem     If ActiveWorkbook.Saved = False Then
Rem         If MsgBox(&quot;ブックがまだ保存されていません。保存しますか？&quot;, vbYesNo) = vbNo Then
Rem             Exit Sub
Rem         Else
Rem             ActiveWorkbook.Save
Rem         End If
Rem     End If
Rem 
Rem     &#039; 出力先フォルダを選択
Rem     Dim fd As FileDialog, fld As String
Rem     fld = ActiveWorkbook.Path
Rem     If Right(fld, 1) &lt;&gt; &quot;\&quot; Then
Rem         fld = fld &amp; &quot;\&quot;
Rem     End If
Rem     Set fd = Application.FileDialog(msoFileDialogFolderPicker)
Rem     fd.Title = &quot;出力先フォルダの選択&quot;
Rem     fd.AllowMultiSelect = False
Rem     fd.InitialFileName = fld
Rem     If fd.Show = False Then Exit Sub
Rem     fld = fd.SelectedItems(1)
Rem     If Right(fld, 1) &lt;&gt; &quot;\&quot; Then
Rem         fld = fld &amp; &quot;\&quot;
Rem     End If
Rem 
Rem     &#039; 書き出し
Rem     Dim ws As Worksheet, fname As String, ext As String, wbPath, f As Boolean
Rem     Application.DisplayAlerts = False
Rem     Application.ScreenUpdating = False
Rem     wbPath = ActiveWorkbook.FullName
Rem     If frm = xlCSV Then
Rem         ext = &quot;.csv&quot;
Rem     Else
Rem         ext = &quot;.tsv&quot;
Rem     End If
Rem     For Each ws In ActiveWorkbook.Worksheets
Rem         f = False
Rem         ws.Activate
Rem         fname = fld &amp; ws.Name &amp; ext
Rem         If Dir(fname) &lt;&gt; &quot;&quot; Then
Rem             f = (MsgBox(fname &amp; &quot;が存在します。上書きしますか？&quot;, vbYesNo) = vbYes)
Rem         Else
Rem             f = True
Rem         End If
Rem         If f Then
Rem             ActiveWorkbook.SaveAs Filename:=fname, FileFormat:=frm
Rem         End If
Rem     Next
Rem     ActiveWorkbook.Close
Rem     Workbooks.Open wbPath
Rem     Application.DisplayAlerts = True
Rem     Application.ScreenUpdating = True
Rem     MsgBox &quot;書き出しが終了しました&quot;
Rem End Sub
End Sub    </description>
    <dc:date>2017-05-10T22:33:47+09:00</dc:date>
    <utime>1494423227</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/ekuserutoka/pages/13.html">
    <title>index.html</title>
    <link>https://w.atwiki.jp/ekuserutoka/pages/13.html</link>
    <description>
      &lt;!-- コメント
クロームの場合
1．デスクトップ上にChromeのショートカットを作る。

２．ショートカットのプロパティを開く

３．ショートカットタブを選択する

４．リンク先のボックスで、Chromeの実行ファイルのパスの後に

 --allow-file-access-from-files

を書きくわえる。

管理者権限がないとできない可能性が高い。

これだけです。これをした後で、このショートカットからChromeを起動すると、ローカルファイルアクセスが可能です。

この起動オプションの実行を確かめたい場合は、Chromeのアドレスを打ち込むボックスに、

chrome://version/

と書き込みます。するとバージョン情報というタブが開きます。コマンドラインという項目の中に先ほどの、

 --allow-file-access-from-files

が書き込まれていればＯＫです。

CSV
カンマ区切り
UTF-8



 --&gt;

&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt;
&lt;script src=&quot;js/jquery-1.7.2.min.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;js/jquery.csv2table-0.02-b-4.8.js&quot; type=&quot;text/javascript&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt; 
&lt;input type=&quot;text&quot; id=&quot;word&quot;&gt;
&lt;button type=&quot;button&quot; id=&quot;btn-search&quot;&gt;項目1&lt;/button&gt;
&lt;input type=&quot;text&quot; id=&quot;word2&quot;&gt;
&lt;button type=&quot;button&quot; id=&quot;btn-search2&quot;&gt;項目5&lt;/button&gt;
&lt;!-- コメント 
検索項目、大見出し付き

--&gt;
&lt;div id=&quot;view1&quot;&gt;&lt;/div&gt;
&lt;div id=&quot;view2&quot;&gt;&lt;/div&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
$().ready ( function() {
	$(&#039;#btn-search&#039;).click ( function() {
		$(&#039;#view1&#039;).csv2table(&#039;./test.csv&#039;, {
			appendThead: [&quot;番号&quot;, &quot;名前&quot;, &quot;住所&quot;, &quot;電話番号&quot;, &quot;おまけ&quot;] },{
			where:		 [ {&#039;項目1&#039;:&#039;like&#039; + &#039;%&#039; + $(&#039;#word&#039;).val() + &#039;%&#039;} ] ,

		});
	});
});
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
$().ready ( function() {
	$(&#039;#btn-search2&#039;).click ( function() {
		$(&#039;#view2&#039;).csv2table(&#039;./テスト.csv&#039;, {
			where: [ {&#039;項目5&#039;:&#039;like&#039; + &#039;%&#039; + $(&#039;#word2&#039;).val() + &#039;%&#039;} ]
		});
	});
});
&lt;/script&gt;
&lt;br&gt;
&lt;font size =&#039;2&#039;&gt;一覧表示&lt;/font&gt;
&lt;div id=&quot;view0&quot;&gt;&lt;/div&gt;
&lt;div id=&quot;view3&quot;&gt;&lt;/div&gt;
&lt;script&gt;
$(function(){
  $(&#039;#view0&#039;).csv2table(&#039;./test.csv&#039;, {
	appendThead: [&quot;番号&quot;, &quot;名前&quot;, &quot;住所&quot;, &quot;電話番号&quot;, &quot;備考&quot;]
	});
});
&lt;/script&gt;
&lt;script&gt;
$(function(){
  $(&#039;#view3&#039;).csv2table(&#039;./テスト.csv&#039;);
});
&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;    </description>
    <dc:date>2017-05-10T22:31:28+09:00</dc:date>
    <utime>1494423088</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/ekuserutoka/pages/16.html">
    <title>jquery.jqchart-0.03-beta-1.1.js</title>
    <link>https://w.atwiki.jp/ekuserutoka/pages/16.html</link>
    <description>
      //jquery.jqchart-0.03-beta-1.1.js
//jquery.jQchart
//
//@charset utf-8
//(Public Domain)
//

(function($) {

  ////body書き忘れ対策 IEはbody無いとcanvas動かない 使う?
  if($.browser)if($.browser.msie)document.body||document.write(&#039;&lt;body&gt;&#039;);
  //http://allabout.co.jp/internet/javascript/closeup/CU20060228A/index2.htm

$.jQchart={
	version  : &#039;0.03-beta-1.1&#039;,
	updateMemo : &#039;v0.03-beta-1.1 are going to support CanvasGradient.&#039;,
	ver      : &#039;&lt;span class=&quot;jQchartVersion&quot; style=&quot;color:#aaa&quot;&gt;&lt;/span&gt;&lt;script&gt;jQuery(function($){ $(&quot;.jQchartVersion&quot;).html(&quot;version:jQchart-&quot;+$.jQchart.version) })&lt;/script&gt;&#039;,
	charset  : &#039;utf-8&#039;,
	doc      : &#039;http://plugins.jquery.com/project/jQchart&#039;,
	demo     : &#039;http://jsgt.org/lib/jquery/plugin/jqchart/nightly/nightly.htm&#039;,
	blog     : &#039;http://jsgt.org/mt/01/&#039;,
	author   : &#039;Toshiro Takahashi&#039;,
	lisence  : &#039;Public Domain&#039;,

	colorSets:{
		char  : [&#039;red&#039;,&#039;#FF9114&#039;,&#039;#3CB000&#039;,&#039;#00A8A2&#039;,&#039;#0036C0&#039;,&#039;#C328FF&#039;,&#039;#FF34C0&#039;],
		rikyu : [&#039;#cbb994&#039;,&#039;#a59564&#039;,&#039;#716246&#039;,&#039;#928178&#039;,&#039;#bfa46f&#039;,&#039;#dcd3b2&#039;,&#039;#9e9478&#039;,&#039;#c7b370&#039;,&#039;#726250&#039;,&#039;#d6c6af&#039;,&#039;#887938&#039;,&#039;#ada250&#039;,&#039;#726d40&#039;,&#039;#a1a46d&#039;],
		gray : [&#039;#524e4d&#039;,&#039;#adadad&#039;,&#039;#595455&#039;,&#039;#afafb0&#039;,&#039;#595857&#039;,&#039;#c0c6c9&#039;,&#039;#727171&#039;,&#039;#c0c6c9&#039;,&#039;#9fa0a0&#039;,&#039;#dcdddd&#039;,&#039;#888084&#039;,&#039;#d5d4d6&#039;,&#039;#7d7d7d&#039;,&#039;#dddcd6&#039;,&#039;#6b6c6d&#039;]

	}
}

$.fn.jQchart = {};
if (window.attachEvent) {
	if($.browser.msie)
		window.attachEvent(&quot;onload&quot;,function(){$.fn.jQchart.winloaded=true});
}
$.fn.jQchart= function(op){

	var that=this,its;

	//Adjustment for canvas on IE
	if($.browser.msie &amp;&amp; !$.fn.jQchart.winloaded)$(window).load(function (){ini()})
	else ini();

	$.fn.jQchart.global_zIndex=1000;

	function ini(){
		switch( typeof op ){
			case &#039;string&#039; : ajaxload(op)   ;break;
			case &#039;object&#039; : drawChart(op) ;break;
		};
	}

	//XHR for case &#039;string&#039;
	function ajaxload(op){
		$.get(op, function(res){
			eval(&quot;var _option = &quot;+res);
			drawChart(_option);
		});
	}

	//Arguments for case &#039;object&#039;
	function drawChart(_option){

		jQuery.extend( $.fn.jQchart,{

			draw : function (op){
				return this.wrtGraph(op);
			},

			//初期設定
			init :	function (op){

				if(!op)op={}
				if(!op.config)op.config={scaleY:{}};
				if(!op.config.scaleY)op.config.scaleY={};
				if(!op.config.line)op.config.line={};

				this.op=jQuery.extend({

					type		: op.config.type	|| &#039;line&#039;,
					use 		: op.config.use	|| null,   //

					//キャンバスのID名
					id	:	$(that).get(0).id||op.config.id || &quot;canvasChart_&quot;+(new Date()).getTime(),

					//キャンバスの幅と高さ
					width		: op.config.width	|| $(&quot;#&quot;+that.get(0).id).attr(&#039;width&#039;)	||300,
					height		: op.config.height	|| $(&quot;#&quot;+that.get(0).id).attr(&#039;height&#039;) ||150,

					//canvas property //あとでlineや軸別にconfig設定可能にする
					bgGradient  : op.config.bgGradient  || null,
					fillStyle	: op.config.fillStyle	|| &quot;rgba(255,0,0,0.5)&quot;,
					strokeStyle	: op.config.strokeStyle	|| &quot;rgba(180,180,180,0.5)&quot;,
					lineWidth	: op.config.lineWidth	||	1,

					//line
					//line_strokeStyle : op.config.line.strokeStyle ||[&#039;red&#039;,&#039;#FF9114&#039;,&#039;#3CB000&#039;,&#039;#00A8A2&#039;,&#039;#0036C0&#039;,&#039;#C328FF&#039;,&#039;#FF34C0&#039;],
					line_strokeStyle : op.config.line.strokeStyle ||op.config.colorSet|| $.jQchart.colorSets.char,
					line_lineWidth   : op.config.line.lineWidth	|| 1,

					//bar

					//フォントサイズ
					labelFontSize	: op.config.labelFontSize || op.fontSize ||	10,
					labelYunitFontSize : op.config.labelYunitFontSize || op.fontSize-1 ||	9,
					dataFontSize	: op.config.dataFontSize	|| op.fontSize ||9,

					//チャート領域のパディング
					paddingL	: op.config.paddingL	|| 60,
					paddingT	: op.config.paddingT	|| 50,
					paddingR	: op.config.paddingR	|| 20,
					paddingB	: op.config.paddingB	|| 40,

					//Title
					title		: op.config.title		|| &#039;&lt;a href=&quot;http://jsgt.org/mt/archives/01/001827.html&quot;&gt;jquery.jQchart&lt;/a&gt;&#039;,
					titleTop	: op.config.titleTop	|| 10,
					titleLeft	: op.config.titleLeft	|| 70,

					//Y単位
					labelYunit     : op.config.labelYunit   	|| &#039;&#039;,

					//Y目盛
					dataYmin	: op.config.scaleY.min || 0,
					dataYmax	: op.config.scaleY.max || 1000,
					dataYgap	: op.config.scaleY.gap || 100,
					scaleYLeft	: op.config.scaleYLeft || 10,

					//X軸ラベル配列
					labelX		: op.config.labelX || null,

					//チャート領域のデータ表示
					labelDataShow	: op.config.labelDataShow || true,
					labelDataOffsetY: op.config.labelDataOffsetY || 10,
					labelDataOffsetX: op.config.labelDataOffsetX || 0,

					data		: op.data ||{},

					draggable	: op.config.draggable || true

				},op||{});

				if(this.op.use){
					this.op.use_api      = this.op.use.split(&#039;:&#039;)[0]
					this.op.use_api_type = this.op.use.split(&#039;#&#039;)[0]
					this.op.use_api_box  = this.op.use.split(&#039;:&#039;)[1].split(&#039;#&#039;)[1]
				}

				if(!this.op.labelX)this.op.paddingB = 10
				this.op.xGapPaddingR	= op.config.xGapPaddingR	|| 0,
				this.op.grid	= {
						col:(this.op.labelX)?
							this.op.labelX.length+this.op.xGapPaddingR:
							this.op.data[0].length+this.op.xGapPaddingR||50,//暫定
						row:this.op.dataYmax/this.op.dataYgap
				};
				this.op.scaleXTop
					=this.op.scaleYBottom
					=this.op.height-this.op.paddingB;
				this.op.scaleXRight	=this.op.width-this.op.paddingR;
				this.op.chartWidth		=this.op.width -this.op.paddingL-this.op.paddingR;
				this.op.chartHeight		=this.op.height-this.op.paddingT-this.op.paddingB;
				this.op.scaleYTop		=this.op.paddingT;
				this.op.scaleXLeft		=this.op.paddingL;
				this.op.yGap			=this.op.dataYgap*this.op.chartHeight/this.op.dataYmax;
				this.op.xGap			=this.op.chartWidth/this.op.grid.col;

				this.op.labelYunitLeft	=this.op.scaleXLeft	 ;
				this.op.labelYunitTop	= 0 ;//dynamic set

				this.op.barWidth		=(this.op.xGap)/(op.data.length+1);

				this.op.xGapPaddingL	= this.op.xGap*op.config.xGapPaddingL	|| 0;

				//bgGradient
				if(this.op.bgGradient){
					if(typeof this.op.bgGradient != &#039;object&#039;)this.op.bgGradient={}

					if(!this.op.bgGradient.direction)this.op.bgGradient.direction=&#039;horizontal&#039;;
					var h=(this.op.bgGradient.direction==&#039;horizontal&#039;)
					var x1=(h)?0:this.op.width*0.227,
						y1=(h)?this.op.height*0.227:0,
						x2=(h)?0:this.op.width*0.818,
						y2=(h)?this.op.height*0.818:0;

					this.op.bgGradient.linearGradient={x1:x1,y1:y1,x2:x2,y2:y2}

					if(!this.op.bgGradient.from) this.op.bgGradient.from = &#039;#687478&#039;;
					if(!this.op.bgGradient.to)   this.op.bgGradient.to   = &#039;#222222&#039;;
				}

				this.resetBox(this.op.id);
				this.mkCanvas(this.op);
			},
			//リセット
			resetBox : function(id){
				$(&quot;#jQchart-title-T-&quot;+id).remove();
				$(&quot;#jQchart-scale-Y-&quot;+id).remove();
				$(&quot;#jQchart-scale-X-&quot;+id).remove();
				$(&quot;#jQchart-data-D-&quot;+id).remove();
			},
			//キャンバスセット
			mkCanvas : function (op){

				its=this;

				//for Opera Bug
				if(jQuery.browser.opera &amp;&amp; eval(jQuery.browser.version,10)&lt;9.5)
					$(&quot;#&quot;+that.get(0).id).get(0).outerHTML=(&#039;&lt;canvas id=&quot;&#039;+this.op.id+&#039;&quot;&gt;&lt;/canvas&gt;&#039;);
				//Canvas要素
				this.canvas =
							$(&quot;#&quot;+that.get(0).id)
								.attr(&#039;width&#039;,this.op.width)
								.attr(&#039;height&#039; ,this.op.height)
								.get(0)

				//メインCanvasDIV作成
				this.jQcanvasBox =this.mkBox4Canvas(this.canvas);
				this.canvasBox =$(this.jQcanvasBox).get(0);

				if (this.canvas.getContext){

					this.ctx=this.canvas.getContext(&#039;2d&#039;);

					this.ctx.globalAlpha = 0.85;

					//キャンバスプロパティ設定
					this.ctx.fillStyle   =this.op.fillStyle;
					this.ctx.strokeStyle =this.op.strokeStyle;
					this.ctx.lineWidth   =this.op.lineWidth;

					//bgGradient
					if(this.op.bgGradient){
					/*alert( &quot; x1-&quot;+
						this.op.bgGradient.linearGradient.x1+&quot; y1-&quot;+
						this.op.bgGradient.linearGradient.y1+&quot; x2-&quot;+
						this.op.bgGradient.linearGradient.x2+&quot; y2-&quot;+
						this.op.bgGradient.linearGradient.y2)*/

						var lingrad2 = this.ctx.createLinearGradient(
							this.op.bgGradient.linearGradient.x1,
							this.op.bgGradient.linearGradient.y1,
							this.op.bgGradient.linearGradient.x2,
							this.op.bgGradient.linearGradient.y2
						);

						lingrad2.addColorStop(0.1, this.op.bgGradient.from);
						lingrad2.addColorStop(0.9, this.op.bgGradient.to);

						this.ctx.fillStyle = lingrad2;
						this.ctx.fillRect(0,0,this.op.width,this.op.height);
					}

					//this.ctx.shadowBlur = 12;
					//this.ctx.shadowColor = &quot;#ccc&quot;;
					//this.ctx.shadowOffsetX = 10;

					//XY軸描画
					this.setXaxis(this.op);
					this.setYaxis(this.op);


					//各DIV作成
					this.titleBox//Title
						=this.mkBoxElement(&#039;T&#039;,
							this.op.titleLeft,this.op.titleTop
						).appendTo(this.jQcanvasBox)
						.css(&#039;width&#039;,this.op.width-this.op.titleLeft)//fix for safari3 2007.12.4
						.get(0);
					this.scaleYBox//Y軸スケール
						=this.mkBoxElement(&#039;Y&#039;,
							this.op.scaleYLeft,this.op.scaleYTop
						).appendTo(this.jQcanvasBox).get(0);
					this.scaleXBox//X軸スケール
						=this.mkBoxElement(&#039;X&#039;,
							this.op.scaleXLeft,this.op.scaleXTop
					).appendTo(this.jQcanvasBox).get(0);

					this.dataBox  //チャート上のデータ
						=this.mkBoxElement(&#039;D&#039;,
							this.op.paddingL+ &#039;px&#039;,this.op.paddingT+ &#039;px&#039;
						).appendTo(this.jQcanvasBox)
						.get(0);
					//チャート上のデータ表示/非表示
					if(this.op.labelDataShow){ $(this.dataBox).show() } else { $(this.dataBox).hide() }

					//ダブルクリックで位置のドラッグ移動が可能になります
					if(jQuery)if(jQuery.ui)if(jQuery.ui.draggable &amp;&amp; this.op.draggable){

						var _cnt=0;_cnt++;if(_cnt&gt;1)return;/*for fix unbind*/

						this.jQcanvasBox.unbind(&#039;dblclick&#039;);
						this.jQcanvasBox.dblclick(function(e){

							if(!$(this).hasClass(&quot;ui-draggable&quot;)){
								draggingon(this);
							}

						})	.mousedown(function(){_cnt=0/*fix unbind*/})
							.click(function(e){
								if(e.target.id!=$(this).get(0).id) draggingoff(this);
							})
					}

					function draggingon(oj){

						//var jclen=$(&quot;.jQchart&quot;).length;

						$(oj).draggable({opacity:0.5 })
								.addClass(&quot;ui-draggable&quot;)
								.removeClass(&quot;ui-draggable-disabled&quot;)
								.css(&#039;border&#039;,&#039;2px dotted cyan&#039;)
								.css(&quot;zIndex&quot;,$.fn.jQchart.global_zIndex++)
								/*.append($(&#039;&lt;div id=&quot;jQchart-close-&#039;+oj.id+&#039;&quot; \
									style=&quot;font-size:0.9em;\
									width:300px;\
									color:#333;\
									padding:0px&quot;&gt;[X]-close&lt;/div&gt;&#039;).one(&#039;click&#039;,function(){
										$(_cbox).replaceWith(&#039;&lt;canvas id=&quot;&#039;+its.canvas.id+&#039;&quot;&gt;&lt;/canvas&gt;&#039;)
									}))
								*/
								.append(&#039;&lt;div id=&quot;jQchart-drgmsg-M-&#039;+oj.id+&#039;&quot; class=&quot;jQchart-drgmsg-M&quot;&gt;draggable-ドラッグできます&lt;/div&gt;&#039;)

					}
					function draggingoff(oj){
						$(oj).draggableDisable()
							.css(&#039;border&#039;,&#039;0px&#039;)
							.removeClass(&quot;ui-draggable&quot;)
							.addClass(&quot;ui-draggable-disabled&quot;)
						$(&quot;#jQchart-drgmsg-M-&quot;+oj.id).remove();
					}
			     //========dbug========
			     //this._debugShowPos4();
				}
			},

			mkBox4Canvas:function(canvas){

				if(!document.getElementById(&quot;jQchart-&quot; +this.op.id))
					return $(&#039;&lt;div&gt;&lt;/div&gt;&#039;)
						.attr(&#039;id&#039;,&#039;jQchart-&#039;+this.op.id)
						.attr(&#039;class&#039;,&#039;jQchart&#039;)
						.css({
									position : &#039;relative&#039;,
								/*	margin	 :&#039;0px&#039;,
									padding	 :&#039;0px&#039;,*/
									top	 	 : &#039;0px&#039;,
									left	 : &#039;0px&#039;,
									width	 : this.op.width+&#039;px&#039;,
									height	 : this.op.height+&#039;px&#039;
						})
						.insertBefore(canvas)
						.append(canvas)

				else return $(&quot;#jQchart-&quot; +this.op.id)
			},
			mkBoxElement:function(type,x,y){

				var typeName=&#039;&#039;;
				switch(type){
					case &#039;T&#039; : typeName=&#039;title&#039;;break;
					case &#039;Y&#039; : typeName=&#039;scale&#039;;break;
					case &#039;X&#039; : typeName=&#039;scale&#039;;break;
					case &#039;D&#039; : typeName=&#039;data&#039; ;break;
				};

				if($(&quot;&#039;#jQchart-scale-&quot; +type+&#039;-&#039;+this.op.id+&quot;&#039;&quot; ).length==0)
					return $(&#039;&lt;div&gt;&lt;/div&gt;&#039;)
						.attr(&#039;id&#039;	 ,&#039;jQchart-&#039;+typeName+&#039;-&#039;+type+&#039;-&#039;+this.op.id)
						.attr(&#039;class&#039;,&#039;jQchart-&#039;+typeName+&#039;-&#039;+type)
						.css({
										position : this.op.position	||&#039;absolute&#039;,
										left		: x 		 ||&#039;10px&#039;,
										top			: y 		 ||&#039;10px&#039;
						})
						.appendTo(document.body)

			},

			//Title
			wrtTitle :	function(op){
				op.subclass = &#039;title&#039; ;
					this.wrtText(0+ &#039;px&#039;,0+ &#039;px&#039;,
						this.op.title,
						op,
						&quot;#jQchart-title-T-&quot;+op.id
					);
			},

			//X軸ラベル
			wrtXscale	: function(op){
				op.subclass = &#039;labelX&#039; ;
				op.color		= &#039;#333&#039;	 ;
				op.start = this.util.getBasePoint(op);
				op.fontSize = op.labelFontSize;

				var x=0//op.start.x ,
					y=10//op.start.y  ;

				x += op.xGapPaddingL;

				for (var i = 0, currP=0; i &lt; op.grid.col;i++) {

					this.wrtText(x+ &#039;px&#039;,y+ &#039;px&#039;,
						op.labelX[currP]+&quot; &quot;,
						op,
						&quot;#jQchart-scale-X-&quot;+op.id
					);
					x	+=op.xGap;
					currP ++;
					this.util.setNextX(op);
				}
				op.fontSize=null;
			},

			//Y軸ラベル単位
			wrtLabelYunit	: function(op,x,y){
				op.subclass = &#039;labelYunit&#039; ;
				op.color		= &#039;#333&#039;	 ;
				op.start = this.util.getBasePoint(op);
				op.fontSize = op.labelYunitFontSize;

				this.op.labelYunitTop = y;

				var u=this.op.labelYunit;

					this.wrtText(x+ &#039;px&#039;,y+ &#039;px&#039;,
						u+&quot; &quot;,
						op,
						&quot;#jQchart-scale-Y-&quot;+op.id
					);
				op.fontSize=null;
			},

			//Y軸ラベル
			wrtYscale	: function(op){
				op.subclass = &#039;labelY&#039; ;
				op.color		= &#039;#333&#039;	 ;
				op.start = this.util.getBasePoint(op);
				op.fontSize = op.labelFontSize;

				var x=op.scaleYLeft ,
					y=op.chartHeight - op.labelFontSize ;

				for (var i = 0, currP=0; i &lt;= op.grid.row;i++) {

					currP = Math.round((currP*100))/100;//丸め

					this.wrtText(x+ &#039;px&#039;,y+ &#039;px&#039;,
						currP+&quot; &quot;,
						op,
						&quot;#jQchart-scale-Y-&quot;+op.id
					);
					y	-=op.yGap;
					currP +=op.dataYgap;
				}
				if(this.op.labelYunit)this.wrtLabelYunit(op,x,y);
				op.fontSize=null;
			},

			//水平線軸
			setXaxis : function(op){

				op.begin = this.util.getBasePoint(op);
				op.end	={
								x	: op.scaleXRight,
								y	: op.begin.y
				}

				for (var i = 0; i &lt;= op.grid.row; i++) {
					this.drawAxis(op);
					this.util.setNextY(op);
				}

				op.setXaxis=true;
			},

			//垂直線軸
			setYaxis : function(op){
				op.begin = this.util.getBasePoint(op);
				op.end	={
								x	: op.begin.x,
								y	: op.scaleYTop
				};
				 for (var i = 0; i &lt;= op.grid.col ; i++) {
						this.drawAxis(op);
						this.util.setNextX(op);
				}

				op.setYaxis=true;

			},

			//軸描画
			drawAxis : function(op){
					this.ctx.beginPath();
					this.ctx.moveTo(op.begin.x,op.begin.y);
					this.ctx.lineTo(op.end.x	,op.end.y );
					this.ctx.stroke();
					this.ctx.save();
			},

			//折れ線描画
			wrtGraph : function(op){	//200:y=700:100

				if(typeof op ==&#039;object&#039;)this.op =  op ;
				this.init(this.op);
				var op =this.op;
				var it =this ;

				switch(op.type){
					case(&#039;line&#039;) : it=this.drawLine(op,it) ;break;
					case(&#039;bar&#039;)  : /*this.drawBar(op,it,10);*/it=this.drawBar(op,it,0)  ;break;
					default      : it=this.drawLine(op,it) ;break;
				}

				//タイトルへ
				it.wrtTitle(it.op);

				return $(&quot;#&quot;+it.op.id);

			},

			drawLine : function (op,it){

				$.each(op.data,function(index,value){

					op.rows=op.data[index];
					op.subclass = &#039;labelData&#039;;
					op.color		= &#039;orange&#039;	;

					var strokeStyle=op.line_strokeStyle[index]||&#039;#777&#039;;//とりあえず7color
					its.ctx.strokeStyle=strokeStyle;//折れ線色 あとでoption指定に
					its.ctx.lineWidth=op.line_lineWidth[index]||1;
					 var x = op.paddingL,
					     y = - op.rows[0]*op.height/op.dataYmax ;

					x += op.xGapPaddingL;

					its.ctx.beginPath();

					for (var i = 0; i &lt; op.rows.length; i++) {
						y = op.paddingT+ op.chartHeight
								-op.rows[i]*op.chartHeight/op.dataYmax ;

						if(i==0) its.ctx.moveTo(x,y);
						else	 its.ctx.lineTo(x,y);

						//データ
						if( x &lt;= op.width){
							var dx=x-op.paddingL,dy=y-op.paddingT;
							it.wrtText(
								dx+op.labelDataOffsetX+ &#039;px&#039;,
								dy+op.labelDataOffsetY+ &#039;px&#039;,
								op.rows[i],op,
								&quot;#jQchart-data-D-&quot;+op.id
							).css(&#039;color&#039;,(op.data.length==1)?&#039;#333&#039;:strokeStyle);
						}

						x += op.xGap;

					}

					its.ctx.stroke();
				});


				//Xラベルへ
				if(it.op.labelX)it.wrtXscale(it.op);
				//Yラベルへ
				it.wrtYscale(it.op);

				return it;
			},

			drawBar : function (op,it,ofs){

				var dlen    = op.data.length,
				    x       = op.paddingL,y=0
					op.subclass = &#039;labelData&#039;;

				for(var i=0;i&lt;dlen;i++){

					var strokeStyle=op.line_strokeStyle[i]||&#039;#777&#039;;//とりあえず7color
					its.ctx.fillStyle=strokeStyle;//折れ線色 あとでoption指定に
					if(ofs!=0)its.ctx.fillStyle = &quot;#eee&quot;;

					//its.ctx.strokeStyle = &quot;orange&quot;;
					if(ofs!=0)its.ctx.strokeStyle = &quot;#eee&quot;;

					op.rows = op.data[i];

					for (var j = 0; j &lt; op.rows.length; j++) {
						drawRect(i,j,ofs);

					}
					x=op.paddingL+ op.barWidth*(i+1)
				}

				function drawRect(i,j,ofs){

					y = op.paddingT+op.chartHeight
								 -op.rows[j]*op.chartHeight/op.dataYmax ;


					its.ctx.fillRect(x+ofs,y+ofs,it.op.barWidth,op.paddingT+op.chartHeight-y);
					its.ctx.strokeRect(x+ofs,y+ofs,it.op.barWidth,op.paddingT+op.chartHeight-y);

						//データ
						if( x &lt;= op.width){
							var dx=x-op.paddingL,dy=y-op.paddingT;
							it.wrtText(
								dx+op.labelDataOffsetX-0+ &#039;px&#039;,
								dy+op.labelDataOffsetY-30+ &#039;px&#039;,
								op.rows[j],op,
								&quot;#jQchart-data-D-&quot;+op.id
							).css(&#039;color&#039;,(op.data.length==1)?&#039;#333&#039;:strokeStyle);
						}

					x=x+op.xGap;

				}
				//Xラベルへ
				if(it.op.labelX)it.wrtXscale(it.op);
				//Yラベルへ
				it.wrtYscale(it.op);
				return it;
			},

			//文字出力
			wrtText : function(x,y,text,op,scope){

				var op=op||this.op,
					css={
						position	: op.position	||&#039;absolute&#039;,
						left		: x 		||&#039;10px&#039;,
						top			: y 		||&#039;10px&#039;
					};
					$.extend(css,(op.fontSize)?{ fontSize	: op.fontSize }:{});

				if(op.subclass)var subclass= op.subclass;
				return $(&#039;&lt;div class=&quot;jQchart-&#039;+subclass+&#039;-&#039;+op.id+&#039; jQchart-&#039;+subclass+&#039;&quot;&gt;&lt;/div&gt;&#039;)
					.append(text)
					.css(css)
					.appendTo(scope||document.body)
			},
			 hoverDataEffect : function(op){

				$(&quot;.jQchart-labelData-&quot;+op.id).hover(hover,unhover)

					function hover(){$(this).css(&quot;font-size&quot;,&quot;2em&quot;)}
					function unhover(){$(this).css(&quot;font-size&quot;,1+&quot;em&quot;)}
			},

			//デバッグ用
			_debugShowPos4 : function(){
				var htm=&#039;Properties of&lt;br&gt;&#039;
							 +&#039;&lt;font color=&quot;orange&quot;&gt;$(&quot;#&#039;+this.op.id+&#039;&quot;).jQchart.op&lt;/font&gt;&lt;hr&gt;&#039;
				for(var i in this.op)htm+=i+&quot; : &quot;+this.op[i]+&quot;&lt;br&gt;&quot;
				$(&quot;&lt;div&gt;&lt;/div&gt;&quot;).html(htm)
				.appendTo(document.body)
				.draggable({opacity:0.5 })
					.css({
						position		: &#039;absolute&#039;,
						top				: &#039;10px&#039;,
						left			: &#039;70%&#039;,
						margin			: &#039;10px&#039;,
						padding			: &#039;10px&#039;,
						backgroundColor	: &#039;#eee&#039;
					})
			},

			util : new function(){

				return {
					cpAry     : function(ary){
						for (var i = 0,_ary=[]; i &lt; ary.length; i++)_ary.push(ary[i]);
						return _ary;
					},
					getMinMax : function(ary){
						//$.fn.jQchart.util.getMinMax(op.data[0]).max()

						var _ary=$.fn.jQchart.util.cpAry(ary);
						return {
							min:function(){return _ary.sort(function(a,b){return a-b})[0]},
							max:function(){return _ary.sort(function(a,b){return b-a})[0]}
						}
					},
					getBasePoint : function(op){
						return {
							x	: op.scaleXLeft,
							y	: op.scaleYBottom
						}
					},
					setNextX	: function(op){op.begin.x = op.end.x += op.xGap;},
					setNextY	: function(op){op.begin.y = op.end.y -= op.yGap;}
				}
			}

		});

		$(that).jQchart.draw(_option);//描画
		return $(this);
	}

	return $(this);
}})(jQuery);    </description>
    <dc:date>2017-05-10T22:30:34+09:00</dc:date>
    <utime>1494423034</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/ekuserutoka/pages/15.html">
    <title>jquery.csv2table-0.02-b-4.8.js</title>
    <link>https://w.atwiki.jp/ekuserutoka/pages/15.html</link>
    <description>
      //jquery.csv2table-0.02-b-4.8.js
//@utf-8

(function($) {

	$.csv2table={
		name     : &#039;csv2table&#039;,
		version  : &#039;0.02-b-4.8&#039;,
		update   : &#039;2014.6.14&#039;,
		update   : &#039;http://jsgt.org/lib/jquery/plugin/csv2table/v002/update.txt&#039;,
		ver      : &#039;&lt;span class=&quot;csv2tableVersion&quot; style=&quot;color:#aaa&quot;&gt;&lt;/span&gt;&lt;script&gt;jQuery(function($){ $(&quot;.csv2tableVersion&quot;).html(&quot;version:csv2table-&quot;+$.csv2table.version) })&lt;/script&gt;&#039;,

		charset  : &#039;utf-8&#039;,
		blog     : &#039;http://ngw.jp/~tato/wp/?p=163&#039;,
		demo     : &#039;http://jsgt.org/lib/jquery/plugin/csv2table/v002/test.htm&#039;,
		author   : &#039;Toshiro Takahashi&#039;,
		lisence  : &#039;Public Domain&#039;,

		//デフォルトCSSをリセットする
		cssReset: function(){
			this.cssDefault = {
				className_div      : {},
				className_table    : {},
				className_table_th : {},
				className_table_td : {},
				className_hoboNum  : {},
				className_sortMark : {},
				className_legends  : {}
			}
		},
		//デフォルトCSS $.csv2table.cssDefault.className_table_tdなどを変えることでデフォルトCSSを変更できます
		cssDefault: {
			className_div      : {
				&#039;padding&#039;           : &#039;10px&#039;,
				&#039;margin&#039;            : &#039;1px&#039;
			},
			className_table    : {
				&#039;border-collapse&#039;   : &#039;collapse&#039;,
				&#039;border-spacing&#039;    : &#039;0px&#039;,
				&#039;margin-bottom&#039;     : &#039;10px&#039;
			},
			className_table_th : {
				&#039;border-color&#039;      : &#039;#eee #999 #777 #bbb&#039;,
				&#039;border-style&#039;      : &#039;solid&#039;,
				&#039;border-width&#039;      : &#039;1px&#039;,
				&#039;background-color&#039;  : &#039;#ccc&#039;,
				&#039;font-size&#039;         : &#039;12px&#039;,
				&#039;padding&#039;          : &#039;4px&#039;,
				&#039;text-align&#039;        : &#039;center&#039;
			},
			className_table_td : {
				&#039;border-color&#039;      : &#039;#eee #aaa #999 #ccc&#039;,
				&#039;border-style&#039;      : &#039;solid&#039;,
				&#039;border-width&#039;      : &#039;1px&#039;,
				&#039;padding&#039;           : &#039;8px&#039;,
				&#039;font-size&#039;         : &#039;12px&#039;
			},
			className_hoboNum    : {},
			className_sortMark   : {
				&#039;font-family&#039;      : &#039;Arial&#039;,
				&#039;text-decoration&#039;  : &#039;none&#039;
			},
			className_legends  : {},
		},
		//画像
		loadImg  : (new Image()).src=&#039;data:image/gif;base64,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&#039;,//&#039;./img/icon-loadinfo.gif&#039;,  //Dafault loading IMG
		sortNImg : (new Image()).src=&#039;data:image/gif;base64,R0lGODlhCwAJAIAAAP///4GBgSH5BAUUAAAALAAAAAALAAkAAAIRhB2nGLnQ4or0WUbdyVZebRQAOw==&#039;,//&#039;./img/icon-n.gif&#039;,         //Dafault sort IMG N
		sortDImg : (new Image()).src=&#039;data:image/gif;base64,R0lGODlhCwAJAIABADCCaPFzMCH+EUNyZWF0ZWQgd2l0aCBHSU1QACH5BAEKAAEALAAAAAALAAkAAAIOjI+pu+APEozqsUCvVgUAOw==&#039;,//&#039;./img/icon-d-green.gif&#039;,   //Dafault sort IMG D
		sortAImg : (new Image()).src=&#039;data:image/gif;base64,R0lGODlhCwAJAIABADCCaPFzMCH5BAEKAAEALAAAAAALAAkAAAINjI+pCmsAF5xpWoezKwA7&#039; ,//&#039;./img/icon-a-green.gif&#039;,   //Dafault sort IMG A
		setting  : [],
		data     : [],
		_rowsAry : [],
		_doc     : document,
		err      : [],
		f        : {
			classifyByCol:function(id,colIndex,myCompAry,nolegend){
				var toj=$(&#039;table&#039;,$(&#039;#&#039;+id)),oj=$(&#039;tr &gt; td:nth-child(&#039;+(colIndex+1)+&#039;)&#039;,toj)
				if(!nolegend){
					var legend=($(&#039;#csv2table-legend-&#039;+id).length==0)?
						$(&#039;&lt;div class=&quot;csv2table-legends&quot; id=&quot;csv2table-legend-&#039;+id+&#039;&quot;&gt;&lt;/div&gt;&#039;):$(&#039;#csv2table-legend-&#039;+id);
					toj.after(
						legend.append(
							$(&#039;&lt;div class=&quot;csv2table-legends&quot; id=&quot;csv2table-legend-&#039;+id+&#039;-&#039;+colIndex+&#039;&quot;&gt;&lt;/div&gt;&#039;)
							.append($.csv2table._rowsAry[id][0][colIndex]+&#039; &#039;)
						)
					)
				}
				//Eg. myCompAry is [[&#039;&gt;10&#039;,&#039;#eee&#039;],[&#039;&gt;30&#039;,&#039;#ddd&#039;],[&#039;&gt;50&#039;,&#039;#bbb&#039;]]
				$.each(myCompAry,function(){
					oj
					.filter(&#039;:_csv2table_myComp(&#039;+this[0]+&#039;)&#039;)
					.css(&#039;background&#039;,this[1])
					if(!nolegend){
						var hanrei=&#039;&lt;span style=&quot;background-color:&#039;+this[1]+&#039;&quot;&gt;&#039;
						          +&#039;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt; &#039;
						$(&#039;#csv2table-legend-&#039;+id+&#039;-&#039;+colIndex)
							.append(hanrei+this[0].split(&#039;&lt;&#039;).join(&#039;&amp;lt;&#039;)+&#039;&amp;nbsp;&amp;nbsp;&amp;nbsp;&#039; )
					}
				})

			}
		}
	}



	$.fn.csv2table= function (url,setting){

		if(!setting)var setting={};
		var contents=$.fn.csv2table.el=this,id=this[0].id,
		op = $.csv2table.setting[id] = $.extend({
			url                : url,
			nowloadingImg      : $.csv2table.loadImg,              //Image of now loading...
			nowloadingMsg      : &#039;now loading...&#039;,                 //Massege of  now loading...
			sortNImg           : $.csv2table.sortNImg,             //Sort IMG N
			sortDImg           : $.csv2table.sortDImg,             //Sort IMG D
			sortAImg           : $.csv2table.sortAImg,             //Sort IMG A
			removeDoubleQuote  : true,                             // remove &quot; of &quot;hogehoge&quot;
			appendThead        : null,                             //Array. Append a Row of Thead.(e.g. [&quot;Name&quot;,&quot;Address&quot;])
			col_midasi         : 0,                                //
			row_sep            : &#039;&#039;,                               //Separator of rows. \r|\n|\r\n default auto get by getCRLF method
			col_sep            : &#039;,&#039;,                              //Separator(,|\t|;) of cols. default &#039;,&#039;
			crlf2br            : false,                            //if true, CR,LF or CRLF of the contents will be changed to the &lt;br&gt;
			sortable           : true,                             //col sort
			select             : &#039;*&#039;,                              //select col lists. default &#039;*&#039; is all cols.
			orderBy            : null,                             //array of sort col. orderBy:[[colNo|&#039;colName&#039;,&#039;sortType&#039;]]
			where              : null,                             //array of where : [{&#039;ColName&#039;:&#039;condition&#039;}] etc.
			limit              : null,                             //array of limit : [offset,len]
			col0color          : true,                             //col[0] color sync jQchart line_strokeStyle
			numArignRight      : true,                             //Set the Number TD to &quot;textAlign : &#039;right&#039;&quot;
			onload             : null,                             //collback function (id,op,data,ary) {}
			use                : null,                             // &#039;jqchart:line#canvasID&#039;
			className_div      : &#039;csv2table-div&#039;,                  //className
			className_table    : &#039;csv2table-table&#039;,                //className
			className_table_th : &#039;csv2table-table-th&#039;,             //className
			className_table_td : &#039;csv2table-table-td&#039;,             //className
			className_hoboNum  : &#039;csv2table-hoboNum&#039;,              //className
			className_sortMark : &#039;csv2table-sortMark&#039;,             //className
			className_legends  : &#039;csv2table-legends&#039;               //className
		},setting);

		if(op.use){ //use      : &#039;jqchart:bar#canvasMyID&#039;,
			op.use_api      = op.use.split(&#039;:&#039;)[0]
			op.use_api_charttype = op.use.split(&#039;#&#039;)[0]
			op.use_api_type = op.use_api_charttype.split(&#039;:&#039;)[1]
			op.use_api_box  = op.use.split(&#039;:&#039;)[1].split(&#039;#&#039;)[1]
		}

		//Custom Selectors
		$.extend($.expr[&quot;:&quot;], {
			//_csv2table_hoboNum is match to number or Number-like (3 digit + comma)
			//for Set the Number TD to &quot;textAlign : &#039;right&#039;&quot;
			_csv2table_hoboNum  : function(a,i,m){
				var b = a.textContent||a.innerText||$(a).text()||&quot;&quot;,
					c = Number(
						chkThreeComma(b).split(&quot;,&quot;).join(&quot;&quot;)
					);
				return !isNaN(b) || !isNaN(c);
			},
			//
			_csv2table_myComp  : function(a,i,m){
				var b = Number(
					(a.textContent||a.innerText||$(a).text()||&quot;&quot;)
						.replace(&quot; &quot;,&quot;&quot;)
						.replace(/,/g,&#039;&#039;)
				);
				return typeof b==&#039;number&#039;? eval(b+m[3]):false;
			}
		});

		$(contents).before(&#039;&lt;div class=&quot;csv2table-loading&quot;&gt;&lt;img src=&quot;&#039;+op.nowloadingImg+&#039;&quot;&gt; &#039;+op.nowloadingMsg+&#039; &lt;/div&gt;&#039; )

		var fetch_param= (url.indexOf(&quot;?&quot;) != -1) ? &quot;&amp;&quot;:&quot;?&quot;;
		var fetch_url = url + fetch_param + (new Date()).getTime(); //2013.04.11 Thanx MORI Shingo ‏@babydaemons

		$.get(fetch_url,&quot;&quot;,function(data,textStatus){
			op.row_sep=getCRLF(data);

			if(op.appendThead)data=op.appendThead.join(op.col_sep)+op.row_sep+data;
			$.csv2table.data[id]=data;
			$(&quot;.csv2table-loading&quot;).fadeOut();
			$(contents).css(&quot;display&quot;,&quot;none&quot;).html(mkRowsAry(id,data));
			setCSS(id);
			$(contents).fadeIn();
			if(op.use_api==&#039;jqchart&#039;){
				if(op.use_api_charttype==&#039;jqchart:line&#039;)op.type=$.csv2table.setting[id].type=&#039;line&#039;;
				else if(op.use_api_charttype==&#039;jqchart:bar&#039;)op.type=$.csv2table.setting[id].type=&#039;bar&#039;;
				useChart(id,op,data,$.csv2table._rowsAry[id]);
			} else
			if(op.use_api==&#039;ccchart&#039;){
				if(op.use_api_type){
				    op.type=$.csv2table.setting[id].type=op.use_api_type;
				} else return;
				useChart(id,op,data,$.csv2table._rowsAry[id]);
			}
			if($.csv2table.setting[id].onload)$.csv2table.setting[id].onload(id,op,data,$.csv2table._rowsAry[id]);
		},&#039;html&#039;);

		$.csv2table.wrtTable=function(colIndex,id,callback){
			$(&quot;#&quot;+id).html(mkRowsAry(id,$.csv2table._rowsAry[id],op[&#039;th&#039;+colIndex],colIndex));
			setCSS(id);
			if(op.use_api==&#039;jqchart&#039;){
				if(op.use_api_charttype==&#039;jqchart:line&#039;)op.type=$.csv2table.setting[id].type=&#039;line&#039;;
				else if(op.use_api_charttype==&#039;jqchart:bar&#039;)op.type=$.csv2table.setting[id].type=&#039;bar&#039;;
				useChart(id,op,$.csv2table.data[id],$.csv2table._rowsAry[id]);
			} else
			if(op.use_api==&#039;ccchart&#039;){
				if(op.use_api_type){
				    op.type=$.csv2table.setting[id].type=op.use_api_type;
				} else return;
				useChart(id,op,data,$.csv2table._rowsAry[id]);
			}
			if($.csv2table.setting[id].onload)
			    $.csv2table.setting[id].onload(id,op,$.csv2table.data[id],$.csv2table._rowsAry[id]);
			if(callback)callback(op[&#039;th&#039;+colIndex],colIndex,id);
		}

		$.csv2table.reset=function(id){
			rowsAry=$.csv2table._rowsAry[id]=escapeStrComma(op.col_sep,op.row_sep,$.csv2table.data[id],op.removeDoubleQuote);
			$(&quot;#&quot;+id).html( mkTable(id,rowsAry));
			if(op.sortable)$(&#039;#&#039;+id+&#039; table th .sortimg&#039;).attr(&#039;src&#039;,op.sortNImg )
			setCSS(id);
			if(op.use_api==&#039;jqchart&#039;){
				if(op.use_api_charttype==&#039;jqchart:line&#039;)op.type=$.csv2table.setting[id].type=&#039;line&#039;;
				else if(op.use_api_charttype==&#039;jqchart:bar&#039;)op.type=$.csv2table.setting[id].type=&#039;bar&#039;;
				useChart(id,op,$.csv2table.data[id],$.csv2table._rowsAry[id]);
			} else
			if(op.use_api==&#039;ccchart&#039;){
				if(op.use_api_type){
				    op.type=$.csv2table.setting[id].type=op.use_api_type;
				} else return;
				useChart(id,op,data,$.csv2table._rowsAry[id]);
			}
		}

		function orderWk(ary,sortType,colIndex){
			ary.head=ary.slice(0,op.col_midasi+1)
			var rowsAry=ary.slice(op.col_midasi+1,ary.length)
			rowsAry=sortwk(rowsAry,sortType,colIndex);
			rowsAry=ary=ary.head.concat(rowsAry)
			return rowsAry
		}

		function mkRowsAry(id,data,sortType,colIndex){

			var rowsAry=null,rewrite=true,//zanntei
				ofs,len

			if(sortType &amp;&amp; rewrite){
				rowsAry=$.csv2table._rowsAry[id]=orderWk(data,sortType,colIndex);
			} else {
				rowsAry=$.csv2table._rowsAry[id]=escapeStrComma(op.col_sep,op.row_sep,data,op.removeDoubleQuote);

				if(op.where){
					var _rowsAry = rowsAry,
						rowsAry  = [],
						wlen     = op.where.length-1,
						colNamesArry =_rowsAry[0] ;
					for(var i=_rowsAry.length-1 ;i&gt; 0;i--){ //最終行はheaderなので無視

						var sikis=&#039;&#039;,siki=&#039;&#039;,colValue=&#039;&#039;,value=&#039;&#039;,colNo=null;
						for(var j=0,ok=false;j&lt;=wlen;j++){
							if(op.where[j]==&#039;&amp;&amp;&#039; || op.where[j]==&#039;||&#039;){
								siki =op.where[j];
								sikis += &quot; &quot; +siki;ok=true;
							} else {

								if(typeof op.where[j].length==&#039;number&#039;){
									colNo=op.where[j][0]; value=$.trim(op.where[j][1]);
								} else if(typeof op.where[j]==&#039;object&#039;){
									for(var k in op.where[j]){
										var colName=$.trim(k);value=$.trim(op.where[j][k]);break;
									}
									colNo= $.inArray(colName, colNamesArry);//get colNo

								} else ok=errLog(&#039;op.where operetor&#039;);

									if(value.match(/^==(.*)/g)){
										siki = &#039;&quot;&#039;+_rowsAry[i][colNo]+&#039;&quot;==&quot;&#039;+RegExp.$1+&#039;&quot;&#039;;
										sikis += &quot; &quot; +siki;ok=true;

								} else if(value.match(/^like\s*(.*)/g)){

									var reg= RegExp.$1;
										reg= reg.split(&#039;\\_&#039;).join(&#039;###adrsr###&#039;) ; //escape _
										reg= reg.replace(/_/g,&#039;.&#039;) ;
										reg= reg.split(&#039;###adrsr###&#039;).join(&#039;_&#039;) ;
										reg= reg.split(&#039;\\%&#039;).join(&#039;###parst###&#039;) ; //escape %
										reg= reg.replace(/%/g,&#039;.*&#039;) ;
										reg= reg.split(&#039;###parst###&#039;).join(&#039;%&#039;) ;
										reg= &#039;^&#039;+reg+&#039;$&#039; ;
									siki=(_rowsAry[i][colNo].match(new RegExp(reg,&#039;g&#039;)))?true:false;
									sikis += &quot; &quot; +siki;ok=true;

								} else if(chkThreeComma(_rowsAry[i][colNo])){
									colValue=_rowsAry[i][colNo].split(&#039;,&#039;).join(&#039;&#039;);
									siki = colValue+value.split(&#039;,&#039;).join(&#039;&#039;);
									if(chkSiki(siki) != null){
										sikis += &quot; &quot; +siki;ok=true;
									} else ok=errLog(&#039;op.where operetor&#039;);

								} else {
									colValue= _rowsAry[i][colNo] ;
									siki = colValue+value;
									if(chkSiki(siki) != null){
										sikis += &quot; &quot; +siki;ok=true;
									} else ok=errLog(&#039;op.where operetor&#039;);
								}
							}
						}
						try{
							//変な値が入るとエラーになる
							//http://jsgt.org/lib/jquery/plugin/csv2table/v002/test/where-2.htm#5&quot;+alert()+&quot;//&quot;8&quot;==&quot;5&quot;+alert()+&quot;&quot;
							sikis= sikis.replace(/\+/g,&#039;&#039;);//fixed follows

						} catch(e) {  return; }

						if(eval(sikis) &amp;&amp; ok)rowsAry.unshift(_rowsAry[i]);
					}
					rowsAry.unshift(_rowsAry[0]);
					$.csv2table._rowsAry[id]=rowsAry;
				}

				resetSortImg(id);
				if(op.orderBy){
					var cv,orderlen = op.orderBy.length-1;
					for(var i=orderlen ;i&gt;=0;i--){
						var cv=getColNoAndValue(op.orderBy[i],rowsAry[0]);
						rowsAry=$.csv2table._rowsAry[id]=orderWk(
							rowsAry,cv.val,cv.cln
						)
					}
				}

				if(op.limit){
					var lmt=op.limit,lmlen=lmt.length,_rowsAry=[],zan,end;
					if(lmlen==1)ofs=1,len=lmt[0];
					else if(lmlen==2)ofs=lmt[0]+1,len=lmt[1];
					else ofs=1,len=rowsAry.length;
					zan=rowsAry.length-ofs;
					if(len&gt;zan)len=zan;
					end=ofs+len;
					for(var i=rowsAry.length;i&gt;0;i--){
						if(ofs&lt;=i &amp;&amp; i&lt;end)_rowsAry.unshift(rowsAry[i]);
					}
					_rowsAry.unshift(rowsAry[0]);
					rowsAry=$.csv2table._rowsAry[id]=_rowsAry;
				}
			}

			var tableHtm=mkTable(id,rowsAry);

			return tableHtm;
		}

		function errLog(msg){
			$.csv2table.err.unshift(&#039;[Err] &#039;+msg) ;
			return false;
		}

		function getColNoAndValue(opr,colNamesArry){
			var colNo=null,value=null;
			if(typeof opr[0]==&#039;number&#039;)colNo=opr[0];
			else if(typeof opr[0]==&#039;string&#039;)
				colNo= $.inArray($.trim(opr[0]),colNamesArry);
			value=$.trim(opr[1]);
			return {cln:colNo,val:value}
		}

		function chkCompOpr(siki){
			return siki.match(/^&amp;&amp;|\|\|$/g) &amp;&amp; siki.length==2
		}

		function chkSiki(siki){
			return siki.match(/^[0-9]*[&lt;&gt;\!=][=]{0,}[0-9]*$/g)
		}

		function getCRLF(content){
		  if(op.row_sep !== &quot;&quot;)return op.row_sep
			if(content.indexOf(&quot;\r\n&quot;)&gt;-1){
				return &quot;\r\n&quot;
			}else if(content.indexOf(&quot;\n&quot;)&gt;-1){
				return &quot;\n&quot;
			}else if(content.indexOf(&quot;\r&quot;)&gt;-1){
				return &quot;\r&quot;
			}else{
				return op.row_sep
			}
		}

		function  mkTable(id,rowsAry){
			if(!rowsAry)return
			var row=rowsAry.length,col=rowsAry[0].length,
				s=op.col_midasi+1
			var htm=&quot;&quot;;

			//見出し行の処理
			htm+= &quot;&lt;tr&gt;&quot;;
			for (var k=0; k&lt;col; k++) {

				var si=$(&#039;#&#039;+id+&#039;-sortimg-&#039;+k)[0],
					sortimgsrc=(si)?$(&#039;#&#039;+id+&#039;-sortimg-&#039;+k)[0].src:op.sortNImg;
				if(op[&#039;th&#039;+k]!=null)
					 if(op[&#039;th&#039;+k]==&#039;D&#039;)sortimgsrc=op.sortDImg;
				else if(op[&#039;th&#039;+k]==&#039;A&#039;)sortimgsrc=op.sortAImg;
				else if(op[&#039;th&#039;+k]==&#039;N&#039;)sortimgsrc=op.sortNImg;

				htm+= &quot;&lt;th id=&#039;&quot;+id+&quot;-th-&quot;+k+&quot;&#039;&gt;&quot;
				   + rowsAry[op.col_midasi][k];

				if(op.sortable)
				htm+= &quot;&lt;img id=&#039;&quot;+id+&quot;-sortimg-&quot;+k+&quot;&#039; class=&#039;sortimg&#039; src=&#039;&quot;+sortimgsrc+&quot;&#039; border=&#039;0&#039;&gt;&quot;
				htm+= &quot;&lt;/th&gt;&quot;;

				if(!op[&#039;th&#039;+k])op[&#039;th&#039;+k]=null;//memo of sortType
			}
			htm+= &quot;&lt;/tr&gt;&quot;;

			//data行の処理
			for (var i=s; i&lt;row; i++) {
					htm+= &quot;&lt;tr&gt;&quot;;
					//列の処理
					for (var j=0; j&lt;col; j++) {
						htm+= &quot;&lt;td&gt;&quot;
						   + rowsAry[i][j]
						   + &quot;&lt;/td&gt;&quot;;
					}
					htm+= &quot;&lt;/tr&gt;&quot;;
			}

			var tableHtm=$.csv2table._doc.getElementById(id)
				.innerHTML=&quot;&lt;table&gt;&quot;+htm+&quot;&lt;/table&gt;&quot;;

			return tableHtm;

		}


		////
		// 並べ替え
		// @parame dataAry    並べ替え対象配列
		// @parame sortType   昇順A|降順D
		// @parame colIndex   ソート列
		//
		function sortwk(dataAry,sortType,colIndex){

			if(!dataAry)return ;

			sortType=sortType.toUpperCase();
			if(sortType==&quot;D&quot;)op[&#039;th&#039;+colIndex]=&#039;D&#039;;
			else op[&#039;th&#039;+colIndex]=&#039;A&#039;;

			var ci=colIndex,
				are3comma=chkThreeComma(dataAry[0][ci]),
				mved3comma=are3comma.split(&quot;,&quot;).join(&quot;&quot;);
			if(!isNaN(dataAry[0][ci]) || !isNaN(mved3comma)){
				var rowlen=dataAry.length;
				if(are3comma != &#039;null&#039;){
					for(var j=0;j&lt;rowlen;j++){
						var d=chkThreeComma(dataAry[j][ci]).split(&quot;,&quot;).join(&quot;&quot;) ;
						dataAry[j].unshift((isNaN(d))?0:d);
					}
					ci=0;
				}

				(sortType==&quot;D&quot;)?
				dataAry.sort(function (a,b){
						return (b[ci] - a[ci]) ;//降順
				}):
				dataAry.sort(function (a,b){
						return (a[ci] - b[ci]);// 昇順
				})

				if(are3comma != &#039;null&#039;){
					for(var j=0;j&lt;rowlen;j++)dataAry[j].shift();
				}

			} else {
				dataAry.sort(
					function(a,b){

						if(!a[ci]) {
							if(!b[ci])return 0;
							else     return 1;
						} else if(!b[ci]) {
							return -1;
						}

						if(&quot;&quot;+a[ci] === &quot;&quot;+b[ci])return 0;
						return (sortType==&quot;D&quot;)?
							((&quot;&quot;+a[ci] &gt; &quot;&quot;+b[ci])?-1:1):
							((&quot;&quot;+a[ci] &gt; &quot;&quot;+b[ci])?1:-1);
					}
				)
			}
			return dataAry;
		}

		function escapeStrComma(col_sep,row_sep,oj,removeDoubleQuote){
			var rdq=(removeDoubleQuote)?&#039;&#039;:&#039;&quot;&#039;;

			//mk dmy for comma in &quot;
			var dmy =[&#039;-###&#039;,&#039;###-&#039;],cnt=0,r;
			cnt=(function mkdmy(cnt){
				if(!(
					oj.indexOf((dmy[0]+&#039;comma&#039;+cnt+dmy[1]))==-1 ||
					oj.indexOf((dmy[0]+&#039;rn&#039;+cnt+dmy[1]))==-1 ||
					oj.indexOf((dmy[0]+&#039;wDquote&#039;+cnt+dmy[1]))==-1
				))mkdmy( ++cnt )
				else void(0)
				return cnt;
			})(cnt)

			var reg=&#039;([&quot;](.|(\r\n|\r|\n))*?([&quot;]$|[&quot;][,(&#039;+op.row_sep+&#039;)]))&#039;, //fix rn thanx @shigemk2 20150612
				dmystr_comma=&#039;&#039;+(dmy[0]+&#039;comma&#039;+cnt+dmy[1]) ,
				dmystr_rn=&#039;&#039;+(dmy[0]+&#039;rn&#039;+cnt+dmy[1]) ,
				dmystr_wDquote=&#039;&#039;+(dmy[0]+&#039;wDquote&#039;+cnt+dmy[1]) ;

			escape= oj.replace(&#039;&quot;&quot;&#039;,dmystr_wDquote);
			escape= escape.replace(
				new RegExp(reg,&quot;g&quot;),
				function (after,before,index) {
					after= after
							.replace(/(\r\n|\r|\n)(?!$)/g,dmystr_rn) //fix rn thanx @shigemk2 20150612
							.replace(/,(?!$)/g,dmystr_comma)
					return after

				}
			)
			if(op.select == &#039;*&#039;||op.select == [&#039;*&#039;])
					r=$.csv2table._rowsAry[id]=mkArray(escape,op.col_sep,op.row_sep);
			else	r=$.csv2table._rowsAry[id]=mkSelectedArray(escape,op.col_sep,op.row_sep,op.select)

			var b=[],rowlen=r.length,collen=r[0].length;
			for(var i=0;i&lt;rowlen;i++){
				if(r[i]==&#039;&#039;)continue;
				b[i]=r[i];
				for(var j=0;j&lt;collen;j++){
					try{
						b[i][j]=$.trim(r[i][j])
							.replace(/^&quot;|&quot;$/g,rdq)
							.replace(new RegExp(dmystr_comma,&quot;g&quot;),&quot;,&quot;)
							.replace(new RegExp(dmystr_rn,&quot;g&quot;),(op.crlf2br?&quot;&lt;br&gt;&quot;:&quot;&quot;)) //fix rn thanx @shigemk2 20150612
							.replace(new RegExp(dmystr_wDquote,&#039;g&#039;),&#039;&quot;&quot;&#039;);
					} catch(e){}
				}
			}
			return b
		}

		function mkSelectedArray(data,col_sep,row_sep,select){
				var rows=data.split(row_sep),rc=[],c=[],
				    rowlen=rows.length ;
				for(var i=0;i&lt;rowlen;i++){
					if($.trim(rows[i])==&#039;&#039;) continue;
					try{
						rc[i]=rows[i].split(col_sep);
						c[i]=[];
						for(var j=0;j&lt;select.length;j++){
							c[i].push(rc[i][select[j]])
						}
					} catch(e){ }
				}
				return c||rc
		}


		function mkArray(data,col_sep,row_sep){
				var rows=data.split(row_sep),rc=[]
				    rowlen=rows.length ;
				for(var i=0;i&lt;rowlen;i++){
					if($.trim(rows[i])==&#039;&#039;) continue;
					try{
						rc[i]=rows[i].split(col_sep);
					} catch(e){ }
				}
				return rc
		}

		function setDefault(settingName,val){
			var prop = (setting[settingName]==&#039;undefined&#039;||
				 setting[settingName]==null)?val:setting[settingName]
			return prop
		}

		function chkThreeComma(data){
			return data.replace(&quot; &quot;,&quot;&quot;)
						.split(&quot;.&quot;)[0]
						.match(/^[0-9]{1,3}(,[0-9]{3})*,[0-9]{3}$/g)+&quot;&quot;
		}

		//$.csv2table.cssDefault.className_divなどを変えるとデフォルトCSSを変更できます

		function setCSS(id){

			$(&#039;#&#039;+id+&#039;&#039;).css($.csv2table.cssDefault.className_div).addClass(op.className_div)
			$(&#039;#&#039;+id+&#039; table&#039;).css($.csv2table.cssDefault.className_table).addClass(op.className_table)

		    var tableWith = parseFloat($.csv2table.setting[id].width);
		    if(tableWith){
		        $(&#039;#&#039;+id+&#039; table&#039;).css({ width     : tableWith + &#039;px&#039;});
		    } else {
		    }

			$(&#039;#&#039;+id+&#039; table th&#039;).css($.csv2table.cssDefault.className_table_th).addClass(op.className_table_th)
			$(&#039;#&#039;+id+&#039; table td&#039;).css($.csv2table.cssDefault.className_table_td).addClass(op.className_table_td)

			var numTD=$(&#039;#&#039;+id+&#039; table td:_csv2table_hoboNum&#039;)
				.addClass(op.className_hoboNum)
			if(op.numArignRight)numTD.css({
				textAlign        : &#039;right&#039;
			})

			if(op.sortable){
				$(&#039;#&#039;+id+&#039; table th&#039;)
					.css($.csv2table.cssDefault.className_sortMark)
					.addClass(op.className_sortMark)
					.each(function (i,el) {
						var i =$(&#039;#&#039;+id+&#039; table th&#039;).index(this);
						$(this).click(function (e) {
							resetSortImg(id,i);
							if(op[&#039;th&#039;+i]==&#039;D&#039;) op[&#039;th&#039;+i]=&#039;A&#039;;
							else op[&#039;th&#039;+i]=&#039;D&#039;;
							$.csv2table.wrtTable( i,&quot;&quot;+id+&quot;&quot;,function(sortType,colIndex,id){});
						});
					});
			}
		}

		function resetSortImg(id,index){
			var thlen=$.csv2table._rowsAry[id][0].length;
			for(var i=0;i&lt;thlen;i++)if(i!=index){ op[&#039;th&#039;+i]=&#039;N&#039;}
			$(&#039;#&#039;+id+&#039; table th img.sortimg&#039;).each(function(){
				$(this).attr(&#039;src&#039;,$.csv2table.setting[id].sortNImg );
			})
		}

		function useChart (id,op,data,ary){
			var head= ary[0];
			if(op.use_api==&#039;jqchart&#039;){
			var dataBody = ary.slice(1);
			$(&quot;#&quot;+op.use_api_box).jQchart({
				config : $.extend(op,{
					width    : $(&#039;#&#039;+id+&#039; table&#039;).width()+10,
					paddingL : $(&#039;#&#039;+id+&#039; table th:nth-child(1)&#039;).width()+14,
					labelX   : (op.labelX==&#039;useChart&#039;)?head.slice(1):op.labelX,
					onload   : ($.csv2table.setting[id].onload)?$.csv2table.setting[id].onload(id,op,data,ary):null
				}),
				data : (function(){
					var d = [];
					for(var i=0,len=dataBody.length;i&lt;len;i++){
						d.push(dataBody[i].slice(1))
					}
					return d;
				})()
			})
			} else
			if(op.use_api==&#039;ccchart&#039;){
			    var dataBody = ary;
				if(!window.ccchart)return;
				$.extend(setting,{
					&quot;type&quot;: op.type,
					&quot;width&quot;: $(&#039;#&#039;+id+&#039; table&#039;).width()
				});

				var chartdata = {
					&quot;config&quot;: setting,
					&quot;data&quot;: ary
				}

				ccchart.init(op.use_api_box, chartdata);
			}

			var jqc;
			if(op.use_api === &#039;ccchart&#039;){
			  return this
			 //lc = ccchart.ops[op.use_api_box].colorSet;
			} else {
			  jqc =  $(&quot;#&quot;+op.use_api_box).jQchart.op;
				if(jqc)lc= $(&quot;#&quot;+op.use_api_box).jQchart.op.line_strokeStyle
				else lc= [&#039;red&#039;,&#039;#FF9114&#039;,&#039;#3CB000&#039;,&#039;#00A8A2&#039;,&#039;#0036C0&#039;,&#039;#C328FF&#039;,&#039;#FF34C0&#039;];
			}
			var dl= dataBody.length,lc;
			$(&#039;tr:even&#039;,&#039;#&#039;+id).css(&#039;background&#039;,&#039;#eee&#039;);
			if(op.col0color)
			$.each(dataBody,function(i){
			    try{
    				$(&#039;tr:nth-child(&#039;+dl+&#039;n&#039;+(dl+i+2)%dl+&#039;)&#039;)
    					.css(&#039;color&#039;,lc[i])
			    } catch(e){}
			})
		}
		return this
	}

})(jQuery);    </description>
    <dc:date>2017-05-10T22:29:53+09:00</dc:date>
    <utime>1494422993</utime>
  </item>
  </rdf:RDF>
