/* partial etc/conf.pl */
var etcconf={"TOPSHARE_URL":"http://xn--1sqv2sm1ej9l.com/share/","MAKER_URL":"http://xn--1sqv2sm1ej9l.com/maker/","TOP_URL":"http://xn--1sqv2sm1ej9l.com/","YUTAISHARE_URL":"http://xn--1sqv2sm1ej9l.com/yutai/share/","SEARCH_URL":"http://xn--1sqv2sm1ej9l.com/search/","YUTAI_URL":"http://xn--1sqv2sm1ej9l.com/yutai/","MAKERSHARE_URL":"http://xn--1sqv2sm1ej9l.com/maker/share/"};
function int2commaintstr(value){
    var i;
    value=""+value;
    for(i = 0; i < value.length/3; i++){
        value = value.replace(/^([+-]?\d+)(\d\d\d)/,"$1,$2");
    }
    return value;
}

function commaintstr2int(value) {
    value=""+value;
    return value.split(",").join("")
}

function aucurl(aucid,url_page){
    return "http://page"+url_page+".auctions.yahoo.co.jp/jp/auction/"+aucid;
}

function ById(id){
     return document.getElementById(id);
}

function auchist_chtab(code,termidx,enable,activate){
    var codet=code+"_"+termidx;
    var tab=ById(codet+"tab");
    if(enable==1){
	tab.onclick=function(){
	var aucinfo;
	eval("aucinfo=yutai_"+code+"_"+termidx+"_aucinfo");
	if(active_tab["code"]){
	    auchist_chtab(active_tab["code"],active_tab["termidx"],1,-1);
	}
	active_tab={"code":code,"termidx":termidx};

	tab.onclick=null;
	tab.style.color="#000000";
	tab.style.cursor=null;
	
	ById("aucsummary").innerHTML=aucinfo["summary"];	
	auchist_chdiv("auclist","yutai_"+code+"_"+termidx+"_auclist",aucinfo["sortmode"]);
	if(aucinfo.shortcharts==0){
	    ById("chart_short").innerHTML="";
	    return true;
	}
	var htmls=['<table class="n" cellspacing=0><tr class="n">'];
	for(var i=0;i<aucinfo.shortcharts;i++){
	    htmls.push('<td class="n"><img src="share/'+code+"_short_"+termidx+"_ac"+i+'_0_320x240.png" width="320" height="240" alt="株主優待券のチャート"></td>');
	}
	htmls.push('<td class="n"><img src="share/chartexplainbar3m_16x240.png" width="16" height="240" alt="chart illustration"></td></tr></table>');
	ById("chart_short").innerHTML=htmls.join("");
	};
	tab.style.color="#0000cc";
	tab.style.cursor="pointer";
    }
    if(activate==1){
	tab.onclick();
    }
}

//push(@{$ah},[
//0//$aucid,$url_page,$price,$title,$photo,
//5//$de_year,$de_mon,$de_day,$weight,$eidx]);
//function auchist_chdiv(ah_idx,ah_org,order){
function auchist_chdiv(div_id,varname_ah,order){
    //    var div_id="ah"+ah_idx;
    var auchist_chdiv_prearg="'"+div_id+"','"+varname_ah+"',";
    var ah_org;
    eval('ah_org='+varname_ah);
    var table_id=div_id+"_tbl";
    var ah=[];
    var ths=["","","","",""];
    //    ths[3]="<div style=\"margin:0em 29em 0em 0em;\"></div>";
    var sortmodes=[
		   {label:"落札価格", col:2, order:"{by:'price'}"},
		   {label:"終了日"  , col:4, order:"{by:'date_end_and_price'}"}];
		   /* {label:"終了時刻", col:4, order:"{by:'date_end'}"}];*/
    var enable_group;
    var avail_group;
    var open_group;
    var toggle_p_display="";
    var toggle_m_display="";
    var weight_sum;
    var focus_id="";
    var trs=[];
    var time0 = new Date();
    var B_loop=1;

    if(ah_org==null){
	ById(div_id).innerHTML="落札履歴は無いようです。";
	return 0;
    }
    for(var B=0;B<B_loop;B++){
    for(var i=0;i<ah_org.length;i++){
	ah[i]=ah_org[i];
    }
    if(ah_org[0][9]==-1){
	avail_group=0;/* summary_lv==0 */
    }else{
	avail_group=1;/* summary_lv==1or2 */
    }
    if(order["by"]=="price" || order["by"]=="price_disable_group"){
	sortmodes[0]["selected"]=1;
	if(avail_group){
	    var dirimg;
	    var order;
	    if(order["by"]=="price"){
		open_group=0;
		toggle_m_display="display:none;";
		dirimg="p";
		order="{by:'price_disable_group'}";
	    }else{
		open_group=1;
		toggle_p_display="display:none;";
		dirimg="m";
		order="{by:'price'}";
	    }
	    sortmodes[0]["append_colhtml"]=""+
		"<span onClick=\"auchist_chdiv("+auchist_chdiv_prearg+order+");\" style=\"cursor:pointer;\"><img width=9 height=9 src=\""+etcconf["TOPSHARE_URL"]+"dirtree_"+dirimg+"9x9.png\"></span>";

		//		"<table class=\"n\"><tr class=\"n\"><td class=\"n\" style=\"vertical-align:middle;height:0.9em;\">"+"\n"+
		//		"<div onClick=\"auchist_chdiv("+ah_idx+",ah"+ah_idx+"_json,"+order+");\" style=\"cursor:pointer;\"><img width=9 height=9 src=\""+etcconf["TOPSHARE_URL"]+"dirtree_"+dirimg+"9x9.png\"></div>"+
		//		"</td></tr></table>";
	    enable_group=1;
	}else{
	    ah.sort(function(a,b){return b[2]-a[2];});
	    enable_group=0;	    
	}
    }else if (order["by"]=="date_end_and_price"){
	sortmodes[1]["selected"]=1;
	ah.sort(function(a,b){var k=(b[5]-a[5])*1024+(b[6]-a[6])*32+b[7]-a[7];if(k!=0){return k;}return b[2]-a[2];});
	enable_group=0;
    }else if (order["by"]=="date_end"){
	sortmodes[2]["selected"]=1;
	ah.sort(function(a,b){return (b[5]-a[5])*1024+(b[6]-a[6])*32+b[7]-a[7];});
	enable_group=0;
    }
    }/*B*/
    if(enable_group){
	weight_sum=0;
	for(var i=0;i<ah.length;i++){
	    weight_sum+=ah[i][8];
	}
    }
    var time1 = new Date();
    for(var i=0;i<sortmodes.length;i++){
	var onclick="";
	var styles=[];
	var span_id="";
	var icon;
	var br=ths[sortmodes[i]["col"]]?"":"";
	if(sortmodes[i]["selected"]){
	    focus_id=table_id+"_th"+i;
	    span_id=" id=\""+focus_id+"\"";
	    icon="▽";
	    styles.push("font-weight:bold");
	}else{
	    icon="▼";
	    styles.push("cursor:pointer;text-decoration:none;color:#0000cc;");
	    onclick=" onClick=\"auchist_chdiv("+auchist_chdiv_prearg+sortmodes[i]["order"]+");\"";
	}
	/*styles.push("margin-left:1em");*/
	ths[sortmodes[i]["col"]]=ths[sortmodes[i]["col"]]+br+"<span"+span_id+onclick+join_styles(styles)+">"+icon+"</span>";
	if(sortmodes[i]["append_colhtml"]){
	    ths[sortmodes[i]["col"]]=ths[sortmodes[i]["col"]]+sortmodes[i]["append_colhtml"];
	}
    }
    for(var B=0;B<B_loop;B++){trs=[];
    var primary_idx=0;
    var primary_bgcolor=["#ffffff","#f0f0ff"];
    var ingroup_idx=0;
    var ingroup_bgcolor=[["#ffffff","#fefeff"],["#f0f0ff","#f1f1ff"]];
    var togglep_idx;
    var togglep;
    var togglem_idx;
    var togglem;
    var bar;
    for(var i=0;i<ah.length;i++){
	var row_id=table_id+"_"+i;
	var tr_styles=[];
	var a=ah[i];
	var toggle="";
	var toggletd_styles=[];
	if(! (enable_group && a[9]==null)){
	    primary_idx++;
	}
	ingroup_idx++;
	if(enable_group && a[9]!=null){
	    ingroup_idx=0;
	    var ingroup_num=a[9]-i+1;
	    var ingroup_weight=0;
	    for(var j=i;j<=a[9];j++){
		ingroup_weight+=ah[j][8];
	    }
	    var font_size=100+Math.round(ingroup_weight*100/weight_sum);
	    var bar_size=Math.round(ingroup_weight*200/weight_sum)/10.0;
	    if(bar_size<0.1){
		bar_size=0.1;
	    }
	    bar="<span style=\"position:absolute;top:-0.6em;width:"+bar_size+"em;border-top:solid 2px #c5816e;\"></span>";
	    if(a[9]!=i){
		var eh_eidx=a[9];//enhanced_eidx
		for(var j=a[9]+1;j<ah.length && j<=i+2;j++){
		    if(ah[j][9]!=null){
			eh_eidx=ah[j][9];
		    }
		}

		var weightcnt=[];
		var lastprice=-1;
		var weightcnt_idx=-1;
		for(var j=i;j<=a[9];j++){
		    if(lastprice!=ah[j][2]){
			weightcnt_idx++;
			weightcnt[weightcnt_idx]=[];
			weightcnt[weightcnt_idx][0]=ah[j][2];//price
			weightcnt[weightcnt_idx][1]=j;//このpriceの最初のindex
			weightcnt[weightcnt_idx][2]=0;//weightcnt
			lastprice=ah[j][2];
		    }
		    weightcnt[weightcnt_idx][2]+=ah[j][8];
		}
		weightcnt.sort(function(a,b){return b[2]-a[2];});//多->少
		togglep_idx=weightcnt[0][1];//weight最大のpriceで先頭のindex
		//togglep_idx=i;//togglepをweight分布無視でgroupの先頭にする場合
		togglep=
		    "<span id=\""+row_id+"_barp\" style=\"position:absolute;top:-0.6em;width:"+bar_size+"em;border-top:solid 2px #c5816e;"+toggle_p_display+"\"></span>"+
		    "<span id=\""+row_id+"_togglep\" onClick=\"ahtogglep('"+table_id+"',"+i+","+a[9]+","+eh_eidx+","+togglep_idx+");\" style=\"position:absolute;top:-4px;left:2px;cursor:pointer;"+toggle_p_display+"\"><img width=9 height=9 src=\""+etcconf["TOPSHARE_URL"]+"dirtree_p9x9.png\"></span>";
		togglem_idx=i;
		togglem=
		    "<span id=\""+row_id+"_barm\" style=\"position:absolute;top:-0.6em;width:"+bar_size+"em;border-top:solid 2px #c5816e;"+toggle_m_display+"\"></span>"+
		    "<span id=\""+row_id+"_togglem\" onClick=\"ahtogglem('"+table_id+"',"+i+","+a[9]+","+eh_eidx+","+togglep_idx+");\" style=\"position:absolute;top:-4px;left:2px;cursor:pointer;"+toggle_m_display+"\"><img width=9 height=9 src=\""+etcconf["TOPSHARE_URL"]+"dirtree_m9x9.png\"></span>";
	    }
	}

	toggle="";
	if(enable_group){
	    if(i==a[9]){
		toggle=bar;
	    }else{
		if(i==togglep_idx){
		    toggle+=togglep;
		}
		if(i==togglem_idx){
		    toggle+=togglem;
		}
	    }
	}
	if(avail_group){
	    if(toggle == ""){
		toggle="&nbsp;";
	    }
	    toggle="<div style=\"position:relative;width:13px;\">"+toggle+"</div>";
	}

	if(enable_group && i!=a[9] && i!=togglep_idx){
	    if(! open_group){
		tr_styles.push("display:none");
	    }
	    tr_styles.push("background-color:"+ingroup_bgcolor[primary_idx%2][ingroup_idx%2]);
	    toggletd_styles.push("background-color:"+primary_bgcolor[primary_idx%2]);	}else{
	    tr_styles.push("background-color:"+primary_bgcolor[primary_idx%2]);
	}

	var price=int2commaintstr(a[2]);
	var datetd_styles=[];
	var datestr='';
	if(a[6]<10){datestr='&nbsp;';}
	datestr+=a[6]+'/';
	if(a[7]<10){datestr+='&nbsp;';}
	datestr+=a[7];
	var photo="";
	if(a[4]==1){
	    photo="<img width=14 height=11 src=\""+etcconf["YUTAISHARE_URL"]+"icon_camera14x11.png\">";
	}
	trs.push("<tr id=\""+row_id+"\""+join_styles(tr_styles)+"><td class=\"vmiddle\" "+join_styles(toggletd_styles)+">"+toggle+"</td><td>"+photo+"</td><td style=\"text-align:right\">"+price+"</td><td><a href=\""+aucurl(a[0],a[1])+"\">"+a[3]+"</a></td><td"+join_styles(datetd_styles)+">"+datestr+"</td></tr>");
    }
    }/*B*/

    var html="<table cellspacing=0 cellpadding=2><tr style=\"text-align:center;\"><td>"+ths.join("</td><td>")+"</td></tr>"+trs.join("\n")+"</table>";
    var time2=new Date();
    ById(div_id).innerHTML=html;
    if(focus_id){
	ById(focus_id).focus();
    }
    var time3=new Date();
    //    print_elapsedtime(time0,time1,"elapsed0",20);
    //    print_elapsedtime(time1,time2,"elapsed1",20);
    //    print_elapsedtime(time2,time3,"elapsed2",1);
    //ById("debugta").innerHTML="<textarea>"+html+"</textarea>";
}

function ahtogglep(table_id,sidx,eidx,eh_eidx,togglep_idx){
    for(var i=sidx;i<=eh_eidx;i++){
	var t=ById(table_id+"_"+i+"_togglep");
	if(t){
	    t.style.display="none";
	    t=ById(table_id+"_"+i+"_barp");
	    t.style.display="none";
	}
	var t=ById(table_id+"_"+i+"_togglem");
	if(t){
	    t.style.display="inline";
	    t=ById(table_id+"_"+i+"_barm");
	    t.style.display="inline";
	}
	ById(table_id+"_"+i).style.display=ById(table_id+"_"+togglep_idx).style.display;
    }
}

function ahtogglem(table_id,sidx,eidx,eh_eidx,togglep_idx){
    var t;
    t=ById(table_id+"_"+sidx+"_togglep");
    t.style.display="inline";
    t=ById(table_id+"_"+sidx+"_barp");
    t.style.display="inline";
    t=ById(table_id+"_"+sidx+"_togglem");
    t.style.display="none";
    t=ById(table_id+"_"+sidx+"_barm");
    t.style.display="none";
    for(var i=sidx;i<=eidx;i++){
	if(i==togglep_idx){
	    continue;
	}
	ById(table_id+"_"+i).style.display="none";
    }
}

function join_styles(styles){
    return join_012({pre:" style=\"",suf:"\"",delim:";"},styles);
}

//for test
//var k=["a","b","c"];
//alert(join_012({pre:"PRE",suf:"SUF",delim:"/"},k));
//alert(join_012({0:"none"},[]));
function join_012(opt,array){
    var pre;
    var suf;
    if(array.length==0){
	return opt["0"]?opt["0"]:opt["zero"]?opt["zero"]:"";
    }
    var pre=opt["pre"]?opt["pre"]:"";
    var suf=opt["suf"]?opt["suf"]:"";
    if(array.length==1){
	pre=opt["pre1"]?opt["pre1"]:pre;
	suf=opt["suf1"]?opt["suf1"]:suf;
    }
    var delim=opt["delim"]?opt["delim"]:"";
    return pre+array.join(delim)+suf;
}

function print_elapsedtime(s,e,id,div){
    var elapsed_b=Math.floor((e.getTime() - s.getTime())/div);
    try{
	window.ById(id).innerHTML = '経過時間: ' + elapsed_b +'msec';
    }catch(e) { }
}

