(function($){
$.csv2table={name:"csv2table",version:"0.02-b-2.8",date:"2009.1.10",update:"http://jsgt.org/lib/jquery/plugin/csv2table/v002/update.txt",ver:"<span class=\"csv2tableVersion\" style=\"color:#aaa\"></span><script>jQuery(function($){ $(\".csv2tableVersion\").html(\"version:csv2table-\"+$.csv2table.version) })</script>",charset:"utf-8",doc:"http://jsgt.org/mt/01/",demo:"http://jsgt.org/lib/jquery/plugin/csv2table/v002/test.htm",author:"Toshiro Takahashi",lisence:"Public Domain",loadImg:(new Image()).src="./img/ajax-loader.gif",sortNImg:(new Image()).src="./img/icon-n.gif",sortDImg:(new Image()).src="./img/icon-d-green.gif",sortAImg:(new Image()).src="./img/icon-a-green.gif",setting:[],data:[],_rowsAry:[],_doc:document,err:[],f:{classifyByCol:function(id,_3,_4,_5){
var _6=$("table",$("#"+id)),oj=$("tr > td:nth-child("+(_3+1)+")",_6);
if(!_5){
var _8=($("#csv2table-legend-"+id).length==0)?$("<div class=\"csv2table-legends\" id=\"csv2table-legend-"+id+"\"></div>"):$("#csv2table-legend-"+id);
_6.after(_8.append($("<div class=\"csv2table-legends\" id=\"csv2table-legend-"+id+"-"+_3+"\"></div>").append($.csv2table._rowsAry[id][0][_3]+" ")));
}
$.each(_4,function(){
oj.filter(":_csv2table_myComp("+this[0]+")").css("background",this[1]);
if(!_5){
var _9="<span style=\"background-color:"+this[1]+"\">"+"&nbsp;&nbsp;&nbsp;&nbsp;</span> ";
$("#csv2table-legend-"+id+"-"+_3).append(_9+this[0].split("<").join("&lt;")+"&nbsp;&nbsp;&nbsp;");
}
});
}}};
$.fn.csv2table=function(_a,_b){
if(!_b){
var _b={};
}
var _c=$.fn.csv2table.el=this,id=this[0].id,op=$.csv2table.setting[id]=$.extend({url:_a,nowloadingImg:$.csv2table.loadImg,nowloadingMsg:"nowloading...",sortNImg:$.csv2table.sortNImg,sortDImg:$.csv2table.sortDImg,sortAImg:$.csv2table.sortAImg,removeDoubleQuote:true,appendThead:null,col_midasi:0,row_sep:"\n",col_sep:",",sortable:true,select:"*",orderBy:null,where:null,limit:null,col0color:true,numArignRight:true,onload:null,use:null,className_div:"csv2table-div",className_table:"csv2table-table",className_table_th:"csv2table-table-th",className_table_td:"csv2table-table-td",className_hoboNum:"csv2table-hoboNum",className_sortMark:"csv2table-sortMark",className_legends:"csv2table-legends"},_b);
if(op.row_sep=="\n"){
op.row_sep_reg="\r\n";
}
if(op.use){
op.use_api=op.use.split(":")[0];
op.use_api_type=op.use.split("#")[0];
op.use_api_box=op.use.split(":")[1].split("#")[1];
}
$.extend($.expr[":"],{_csv2table_hoboNum:function(a,i,m){
var b=a.textContent||a.innerText||$(a).text()||"",c=Number(chkThreeComma(b).split(",").join(""));
return !isNaN(b)||!isNaN(c);
},_csv2table_myComp:function(a,i,m){
var b=Number((a.textContent||a.innerText||$(a).text()||"").replace(" ","").replace(/,/g,""));
return typeof b=="number"?eval(b+m[3]):false;
}});
$(_c).before("<div class=\"csv2table-loading\"><img src=\""+op.nowloadingImg+"\"> "+op.nowloadingMsg+" </div>");
$.get(_a+"?"+(new Date()).getTime(),"",function(_18,_19){
if(op.appendThead){
_18=op.appendThead.join(op.col_sep)+op.row_sep+_18;
}
$.csv2table.data[id]=_18;
$(".csv2table-loading").fadeOut();
$(_c).css("display","none").html(mkRowsAry(id,_18));
setCSS(id);
$(_c).fadeIn();
if(op.use_api=="jqchart"){
if(op.use_api_type=="jqchart:line"){
op.type=$.csv2table.setting[id].type="line";
}else{
if(op.use_api_type=="jqchart:bar"){
op.type=$.csv2table.setting[id].type="bar";
}
}
useChart(id,op,_18,$.csv2table._rowsAry[id]);
}
if($.csv2table.setting[id].onload){
$.csv2table.setting[id].onload(id,op,_18,$.csv2table._rowsAry[id]);
}
});
$.csv2table.wrtTable=function(_1a,id,_1c){
$("#"+id).html(mkRowsAry(id,$.csv2table._rowsAry[id],op["th"+_1a],_1a));
setCSS(id);
if(op.use_api=="jqchart"){
if(op.use_api_type=="jqchart:line"){
op.type=$.csv2table.setting[id].type="line";
}else{
if(op.use_api_type=="jqchart:bar"){
op.type=$.csv2table.setting[id].type="bar";
}
}
useChart(id,op,$.csv2table.data[id],$.csv2table._rowsAry[id]);
}
if($.csv2table.setting[id].onload){
$.csv2table.setting[id].onload(id,op,$.csv2table.data[id],$.csv2table._rowsAry[id]);
}
if(_1c){
_1c(op["th"+_1a],_1a,id);
}
};
$.csv2table.reset=function(id){
rowsAry=$.csv2table._rowsAry[id]=escapeStrComma(op.col_sep,op.row_sep,$.csv2table.data[id],op.removeDoubleQuote);
$("#"+id).html(mkTable(id,rowsAry));
if(op.sortable){
$("#"+id+" table th .sortimg").attr("src",op.sortNImg);
}
setCSS(id);
if(op.use_api=="jqchart"){
if(op.use_api_type=="jqchart:line"){
op.type=$.csv2table.setting[id].type="line";
}else{
if(op.use_api_type=="jqchart:bar"){
op.type=$.csv2table.setting[id].type="bar";
}
}
useChart(id,op,$.csv2table.data[id],$.csv2table._rowsAry[id]);
}
};
function orderWk(ary,_1f,_20){
ary.head=ary.slice(0,op.col_midasi+1);
var _21=ary.slice(op.col_midasi+1,ary.length);
_21=sortwk(_21,_1f,_20);
_21=ary=ary.head.concat(_21);
return _21;
}
function mkRowsAry(id,_23,_24,_25){
var _26=null,_27=true,ofs,len;
if(_24&&_27){
_26=$.csv2table._rowsAry[id]=orderWk(_23,_24,_25);
}else{
_26=$.csv2table._rowsAry[id]=escapeStrComma(op.col_sep,op.row_sep,_23,op.removeDoubleQuote);
if(op.where){
var _2a=_26,_26=[],_2b=op.where.length-1,_2c=_2a[0];
for(var i=_2a.length-1;i>0;i--){
var _2e="",_2f="",_30="",_31="",_32=null;
for(var j=0,ok=false;j<=_2b;j++){
if(op.where[j]=="&&"||op.where[j]=="||"){
_2f=op.where[j];
_2e+=" "+_2f;
ok=true;
}else{
if(typeof op.where[j].length=="number"){
_32=op.where[j][0];
_31=$.trim(op.where[j][1]);
}else{
if(typeof op.where[j]=="object"){
for(var k in op.where[j]){
var _36=$.trim(k);
_31=$.trim(op.where[j][k]);
break;
}
_32=$.inArray(_36,_2c);
}else{
ok=errLog("op.where operetor");
}
}
if(_31.match(/^==(.*)/g)){
_2f="\""+_2a[i][_32]+"\"==\""+RegExp.$1+"\"";
_2e+=" "+_2f;
ok=true;
}else{
if(_31.match(/^like\s*(.*)/g)){
var reg=RegExp.$1;
reg=reg.split("\\_").join("###adrsr###");
reg=reg.replace(/_/g,".");
reg=reg.split("###adrsr###").join("_");
reg=reg.split("\\%").join("###parst###");
reg=reg.replace(/%/g,".*");
reg=reg.split("###parst###").join("%");
reg="^"+reg+"$";
_2f=(_2a[i][_32].match(new RegExp(reg,"g")))?true:false;
_2e+=" "+_2f;
ok=true;
}else{
if(chkThreeComma(_2a[i][_32])){
_30=_2a[i][_32].split(",").join("");
_2f=_30+_31.split(",").join("");
if(chkSiki(_2f)!=null){
_2e+=" "+_2f;
ok=true;
}else{
ok=errLog("op.where operetor");
}
}else{
_30=_2a[i][_32];
_2f=_30+_31;
if(chkSiki(_2f)!=null){
_2e+=" "+_2f;
ok=true;
}else{
ok=errLog("op.where operetor");
}
}
}
}
}
}
if(eval(_2e)&&ok){
_26.unshift(_2a[i]);
}
}
_26.unshift(_2a[0]);
$.csv2table._rowsAry[id]=_26;
}
resetSortImg(id);
if(op.orderBy){
var cv,_39=op.orderBy.length-1;
for(var i=_39;i>=0;i--){
var cv=getColNoAndValue(op.orderBy[i],_26[0]);
_26=$.csv2table._rowsAry[id]=orderWk(_26,cv.val,cv.cln);
}
}
if(op.limit){
var lmt=op.limit,_3b=lmt.length,_2a=[],zan,end;
if(_3b==1){
ofs=1,len=lmt[0];
}else{
if(_3b==2){
ofs=lmt[0]+1,len=lmt[1];
}else{
ofs=1,len=_26.length;
}
}
zan=_26.length-ofs;
if(len>zan){
len=zan;
}
end=ofs+len;
for(var i=_26.length;i>0;i--){
if(ofs<=i&&i<end){
_2a.unshift(_26[i]);
}
}
_2a.unshift(_26[0]);
_26=$.csv2table._rowsAry[id]=_2a;
}
}
var _3e=mkTable(id,_26);
return _3e;
}
function errLog(msg){
$.csv2table.err.unshift("[Err] "+msg);
return false;
}
function getColNoAndValue(opr,_41){
var _42=null,_43=null;
if(typeof opr[0]=="number"){
_42=opr[0];
}else{
if(typeof opr[0]=="string"){
_42=$.inArray($.trim(opr[0]),_41);
}
}
_43=$.trim(opr[1]);
return {cln:_42,val:_43};
}
function chkCompOpr(_44){
return _44.match(/^&&|\|\|$/g)&&_44.length==2;
}
function chkSiki(_45){
return _45.match(/^[0-9]*[<>\!=][=]{0,}[0-9]*$/g);
}
function mkTable(id,_47){
if(!_47){
return;
}
var row=_47.length,col=_47[0].length,s=op.col_midasi+1;
var htm="";
htm+="<tr>";
for(var k=0;k<col;k++){
var si=$("#"+id+"-sortimg-"+k)[0],_4e=(si)?$("#"+id+"-sortimg-"+k)[0].src:op.sortNImg;
if(op["th"+k]!=null){
if(op["th"+k]=="D"){
_4e=op.sortDImg;
}else{
if(op["th"+k]=="A"){
_4e=op.sortAImg;
}else{
if(op["th"+k]=="N"){
_4e=op.sortNImg;
}
}
}
}
htm+="<th id='"+id+"-th-"+k+"'>"+_47[op.col_midasi][k];
if(op.sortable){
htm+="<img id='"+id+"-sortimg-"+k+"' class='sortimg' src='"+_4e+"' border='0'>";
}
htm+="</th>";
if(!op["th"+k]){
op["th"+k]=null;
}
}
htm+="</tr>";
for(var i=s;i<row;i++){
htm+="<tr>";
for(var j=0;j<col;j++){
htm+="<td>"+_47[i][j]+"</td>";
}
htm+="</tr>";
}
var _51=$.csv2table._doc.getElementById(id).innerHTML="<table>"+htm+"</table>";
return _51;
}
function sortwk(_52,_53,_54){
if(!_52){
return;
}
_53=_53.toUpperCase();
if(_53=="D"){
op["th"+_54]="D";
}else{
op["th"+_54]="A";
}
var ci=_54,_56=chkThreeComma(_52[0][ci]),_57=_56.split(",").join("");
if(!isNaN(_52[0][ci])||!isNaN(_57)){
var _58=_52.length;
if(_56!="null"){
for(var j=0;j<_58;j++){
var d=chkThreeComma(_52[j][ci]).split(",").join("");
_52[j].unshift((isNaN(d))?0:d);
}
ci=0;
}
(_53=="D")?_52.sort(function(a,b){
return (b[ci]-a[ci]);
}):_52.sort(function(a,b){
return (a[ci]-b[ci]);
});
if(_56!="null"){
for(var j=0;j<_58;j++){
_52[j].shift();
}
}
}else{
_52.sort(function(a,b){
if(!a[ci]){
if(!b[ci]){
return 0;
}else{
return 1;
}
}else{
if(!b[ci]){
return -1;
}
}
if(""+a[ci]===""+b[ci]){
return 0;
}
return (_53=="D")?((""+a[ci]>""+b[ci])?-1:1):((""+a[ci]>""+b[ci])?1:-1);
});
}
return _52;
}
function escapeStrComma(_61,_62,oj,_64){
var rdq=(_64)?"":"\"";
var dmy=["-###","###-"],cnt=0,r;
cnt=(function mkdmy(cnt){
if(!(oj.indexOf((dmy[0]+"comma"+cnt+dmy[1]))==-1||oj.indexOf((dmy[0]+"rn"+cnt+dmy[1]))==-1||oj.indexOf((dmy[0]+"wDquote"+cnt+dmy[1]))==-1)){
_6a(++cnt);
}else{
void (0);
}
return cnt;
})(cnt);
var reg="([\"](.|(\r\n))*?([\"]$|[\"][,("+op.row_sep_reg+")]))",_6c=""+(dmy[0]+"comma"+cnt+dmy[1]),_6d=""+(dmy[0]+"rn"+cnt+dmy[1]),_6e=""+(dmy[0]+"wDquote"+cnt+dmy[1]);
escape=oj.replace("\"\"",_6e);
escape=escape.replace(new RegExp(reg,"g"),function(_6f,_70,_71){
_6f=_6f.replace(/(\r\n)(?!$)/g,_6d).replace(/,(?!$)/g,_6c);
return _6f;
});
if(op.select=="*"||op.select==["*"]){
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=[],_73=r.length,_74=r[0].length;
for(var i=0;i<_73;i++){
if(r[i]==""){
continue;
}
b[i]=r[i];
for(var j=0;j<_74;j++){
try{
b[i][j]=$.trim(r[i][j]).replace(/^"|"$/g,rdq).replace(new RegExp(_6c,"g"),",").replace(new RegExp(_6d,"g"),"\r\n").replace(new RegExp(_6e,"g"),"\"\"");
}
catch(e){
}
}
}
return b;
}
function mkSelectedArray(_77,_78,_79,_7a){
var _7b=_77.split(_79),rc=[],c=[],_7e=_7b.length;
for(var i=0;i<_7e;i++){
if($.trim(_7b[i])==""){
continue;
}
try{
rc[i]=_7b[i].split(_78);
c[i]=[];
for(var j=0;j<_7a.length;j++){
c[i].push(rc[i][_7a[j]]);
}
}
catch(e){
}
}
return c||rc;
}
function mkArray(_81,_82,_83){
var _84=_81.split(_83),rc=[];
rowlen=_84.length;
for(var i=0;i<rowlen;i++){
if($.trim(_84[i])==""){
continue;
}
try{
rc[i]=_84[i].split(_82);
}
catch(e){
}
}
return rc;
}
function setDefault(_87,val){
var _89=(_b[_87]=="undefined"||_b[_87]==null)?val:_b[_87];
return _89;
}
function chkThreeComma(_8a){
return _8a.replace(" ","").split(".")[0].match(/^[0-9]{1,3}(,[0-9]{3})*,[0-9]{3}$/g)+"";
}
function setCSS(id){
$("#"+id+"").css({padding:"0px",margin:"20px"}).addClass(op.className_div);
$("#"+id+" table").css({borderCollapse:"collapse",borderSpacing:"0px",marginBottom:"10px"}).addClass(op.className_table);
$("#"+id+" table th").css({borderColor:"#eee #999 #777 #bbb",borderStyle:"solid",borderWidth:"1px",backgroundColor:"#ccc",fontSize:"12px",padding:"4px",textAlign:"center"}).addClass(op.className_table_th);
$("#"+id+" table td").css({borderColor:"#eee #aaa #999 #ccc",borderStyle:"solid",borderWidth:"1px",padding:"8px",fontSize:"12px"}).addClass(op.className_table_td);
var _8c=$("#"+id+" table td:_csv2table_hoboNum").addClass(op.className_hoboNum);
if(op.numArignRight){
_8c.css({textAlign:"right"});
}
if(op.sortable){
$("#"+id+" table th").css("font-family","Arial").css("text-decoration","none").addClass(op.className_sortMark).each(function(i,el){
var i=$("#"+id+" table th").index(this);
$(this).click(function(e){
resetSortImg(id,i);
if(op["th"+i]=="D"){
op["th"+i]="A";
}else{
op["th"+i]="D";
}
$.csv2table.wrtTable(i,""+id+"",function(_90,_91,id){
});
});
});
}
}
function resetSortImg(id,_94){
var _95=$.csv2table._rowsAry[id][0].length;
for(var i=0;i<_95;i++){
if(i!=_94){
op["th"+i]="N";
}
}
$("#"+id+" table th img.sortimg").each(function(){
$(this).attr("src",$.csv2table.setting[id].sortNImg);
});
}
function useChart(id,op,_99,ary){
var _9b=ary[0],_9c=ary.slice(1);
$("#"+op.use_api_box).jQchart({config:$.extend(op,{width:$("#"+id+" table").width()+10,paddingL:$("#"+id+" table th:nth-child(1)").width()+14,labelX:(op.labelX=="useChart")?_9b.slice(1):op.labelX,onload:($.csv2table.setting[id].onload)?$.csv2table.setting[id].onload(id,op,_99,ary):null}),data:(function(){
var d=[];
for(var i=0,len=_9c.length;i<len;i++){
d.push(_9c[i].slice(1));
}
return d;
})()});
var dl=_9c.length,lc=$("#"+op.use_api_box).jQchart.op.line_strokeStyle;
$("tr:even","#"+id).css("background","#eee");
if(op.col0color){
$.each(_9c,function(i){
$("tr:nth-child("+dl+"n"+(dl+i+2)%dl+") td:first","#"+id).css("color",lc[i]);
});
}
}
return this;
};
})(jQuery);


