
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//
// 第五部分：用于页面显示的一些函数 default.aspx 中引用
// 主要是 图表
//
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

GraphClass = function() 
{
	this.Panel = "BetScroll";		// 容器名
	this.CtrlName = "GrafTable";	// 控件名
	this.WidthDefault = 482;
	this.HeightDefault = 293;
	this.WidthNarrow = 466;
	this.dataTrend = "";
	this.dataFreq = "";
	this.dataSum = "";
	this.dataHot = "";
	
	this.vmin = 999999;
	this.vmax = 0;
	this.dump = new Array();
}

GraphClass.prototype = 
{
	// 新增图表
	Add : function(title,html)
	{
		var obj = document.getElementsByName(this.Panel);
		var str = obj[0].innerHTML + "<span id=\"" + this.CtrlName + "\" name=\"" + 
			      this.CtrlName + "\" style=\"display:none;width:" + this.WidthDefault + "px;\" tips=\"" + 
				  title + "\">Loading...</span>";
		obj[0].innerHTML = str;
	},

	// 生成图表的内容
	HTML : function(title)
	{
		if(title == "和值") return this.BallSum("ImgSum5");
		if(title == "和三") return this.BallSum("ImgSum3");
		if(title == "和二") return this.BallSum("ImgSum2");
		if(title == "频率") return this.BallFreq("FreqRed", "LostRed");
		if(title == "号球") return this.BallShow("BallRed", title);
		if(title == "胆号") return this.BallShow("BallRedKey", title);
		if(title == "拖号") return this.BallShow("BallRedSelect", title);
		if(title == "走势") return this.BallTrend("BallRedTrend");
		if(title == "缩水") return this.BallOptions(5);
		if(title == "缩三") return this.BallOptions(3);
		if(title == "缩二") return this.BallOptions(2);
		if(title == "前组") return this.BallQ21();
		if(title == "前直") return this.BallQ22();
		if(title == "矩阵") return this.BallMatrix();
		if(title == "文件") return this.BallFile();
		if(title == "开奖") return this.BallOpens();

		if(title == "三直") return this.BallShow("BallRed", "第一位") + this.BallShow("BallRed", "第二位") + this.BallShow("BallRed", "第三位");
		if(title == "二直") return this.BallShow("BallRed", "第一位") + this.BallShow("BallRed", "第二位");
		return "";
	},

	// 给指定名称的图表建立 HTML 元素
	Assign : function(title, str)
	{
		var obj = document.getElementsByName(this.CtrlName);
		if(obj != null) {
			for(var i=0; i<obj.length; i++) {
				if(obj[i].tips == title) {
					obj[i].innerHTML = str;
					break;
				}
			}
		}
	},
	
	// 重新生成图表（与开奖数据相关）
	Reload : function()
	{
		this.Assign( "频率", this.BallFreq("FreqRed", "LostRed") );
		this.Assign( "和值", this.BallSum("ImgSum5") );
		this.Assign( "和三", this.BallSum("ImgSum3") );
		this.Assign( "和二", this.BallSum("ImgSum2") );
		this.Assign( "走势", this.BallTrend("BallRedTrend") );
		this.Assign( "前组", this.BallQ21() );
		this.Assign( "前直", this.BallQ22() );
		this.Assign( "开奖", this.BallOpens() );
		this.Assign( "冷热", this.BallHot() );
	},
	
	// 隐藏指定图表或隐藏全部图表(title="")
	// 因为右侧 冷热，开奖 也是 CtrlName 的控件，所以隐藏时需要减去 2
	Hide : function(title)
	{
		var obj = document.getElementsByName(this.CtrlName);
		for(var i=0; i<obj.length - 2; i++) {
			if(obj[i].tips == title || title == "") {
				obj[i].style.display = "none";
			}
		}
	},
	
	// 显示指定图表
	Show : function(title)
	{
		var obj = document.getElementsByName(this.CtrlName);
		for(var i=0; i<obj.length; i++) {
			if(obj[i].tips == title) {
				if(obj[i].innerHTML == "Loading...") {
					obj[i].innerHTML = this.HTML(title);
				}
				obj[i].style.display = "inline";
				break;
			}
		}
	},

	// 按 lst 显示部分图表
	ShowList : function(lst)
	{
		var iAry = lst.split(",");
		for(var i=0; i<iAry.length; i++)
		{
			// 如果出现等号，则进行表格覆盖；请参阅 Command.OnSelect方法
			// 这样做的目的是 不会引起 计算(Execute)的控件重复。
			// 尤其是 缩水选项
			if(iAry[i].indexOf("=")>=0) {
				var fAry = iAry[i].split("=");
				this.Assign( fAry[0], this.HTML(fAry[1]) );
				this.Show(fAry[0]);
			}
			else {
				this.Show(iAry[i]);
			}
		}
	},
	
	// 一次性或读 ajax 数据；分别使用；
	Load : function()
	{
		var bData = "";
		bData = AjaxPost("/Include/Agent.Loader.aspx?id=" + game.id);
		var bArray = bData.split("|");

		var i=0;
		this.dataFreq = "";
		for(var j=0; j<3; j++, i++) this.dataFreq += bArray[i] + "|";

		this.dataSum = "";
		// 如果是 11选5 ，有 6个和值数据可以读取；
		// 其他乐透奖项只有 1 个；
		if(game.id==3003) {
			for(var j=0; j<6; j++, i++) this.dataSum += bArray[i] + "|";
		}
		else {
			this.dataSum += bArray[0] + "|";
		}

		this.dataHot = "";
		if(game.id==3003) {
			for(var j=0; j<game.select*3; j++, i++) this.dataHot += bArray[i] + "|";
		}

		this.dataTrend = "";
		while(i<bArray.length-1) {
			if(i>bArray.length-20) {
				this.dataTrend += bArray[i] + "|";
			}
			i++;
		}
	},

	// 显示和值图
	BallScale : function (values,height)
	{
		var varray = values.split(",");
		this.vmin = 999999;
		this.vmax = 0;
		var v;
		for(var i=0; i<varray.length; i++) {
			if(varray[i]!="") {
				v = parseInteger(varray[i]);
				if(this.vmin > v) this.vmin = v;
				if(this.vmax < v) this.vmax = v;
			}
		}
		if( (this.vmax-this.vmin)<=0) return height/this.vmax;
		return height / (this.vmax-this.vmin);
	},

	// 显示和值图
	BallSum : function(idstr)
	{
		var rsl = "";
		if(this.dump[0]!=null) {
			eval(this.dump[0]);
		}
		else {
			var scr = AjaxXML("/Include/Load.aspx?js=d11_BallSum","");
			this.dump[0] = scr;
			eval(scr);
		}
		return rsl;
	},

	//-------------------------------------------------------------------------

	// 设置走势图显示列(TD)
	BallTrendShow : function (ilen)
	{
		var tds = document.getElementsByName("zsTD");
		for(var i=0; i<tds.length; i++) {
			tds[i].style.display = "none";
		}
		if(ilen==3) {
			tds[1].style.display = "inline";
			tds[5].style.display = "inline";
			return;
		}
		if(ilen==2) {
			tds[2].style.display = "inline";
			tds[6].style.display = "inline";
			return;
		}
		if(ilen==1) {
			tds[3].style.display = "inline";
			tds[4].style.display = "inline";
			return;
		}
		tds[0].style.display = "inline";
		tds[4].style.display = "inline";
	},

	// 显示走势图的一列
	BallTrendIssue : function()
	{
		var rsl = "";
		if(this.dump[1]!=null) {
			eval(this.dump[1]);
		}
		else {
			var scr = AjaxXML("/Include/Load.aspx?js=d11_BallTrendIssue","");
			this.dump[1] = scr;
			eval(scr);
		}
		return rsl;
	},

	// 显示走势图的一列
	BallTrendOpen : function()
	{
		var rsl = "";
		if(this.dump[2]!=null) {
			eval(this.dump[2]);
		}
		else {
			var scr = AjaxXML("/Include/Load.aspx?js=d11_BallTrendOpen","");
			this.dump[2] = scr;
			eval(scr);
		}
		return rsl;
	},

	// 显示走势图的一列
	BallTrendColumn : function(ctrlName,ilen)
	{
		var rsl = "";
		if(this.dump[3]!=null) {
			eval(this.dump[3]);
		}
		else {
			var scr = AjaxXML("/Include/Load.aspx?js=d11_BallTrendColumn","");
			this.dump[3] = scr;
			eval(scr);
		}
		return rsl;
	},

	// 数据统计
	BallStatics : function(istart,ilen)
	{
		var rsl = "";
		if(this.dump[4]!=null) {
			eval(this.dump[4]);
		}
		else {
			var scr = AjaxXML("/Include/Load.aspx?js=d11_BallStatics","");
			this.dump[4] = scr;
			eval(scr);
		}
		return rsl;
	},

	// 数字覆盖
	BallFill : function(istart,ilen)
	{
		var rsl = "";
		if(this.dump[5]!=null) {
			eval(this.dump[5]);
		}
		else {
			var scr = AjaxXML("/Include/Load.aspx?js=d11_BallFill","");
			this.dump[5] = scr;
			eval(scr);
		}
		return rsl;
	},

	// 显示走势图
	BallTrend : function (idstr)
	{
		var rsl = "";
		rsl += "<table cellpadding=0 cellspacing=0 border=0 width=\"470\" style=\"font-size:12px;line-height:16px;border-collapse:collapse;text-align:center;\">";
		rsl += "<tr>";
		rsl += "<td width=70 valign=top>" + this.BallTrendIssue() + "</td>";
		rsl += "<td width=246 valign=top id=zsTD name=zsTD style=\"display:inline;\">" + this.BallTrendColumn(idstr,5) + "</td>";
		rsl += "<td width=246 valign=top id=zsTD name=zsTD style=\"display:none;\">" + this.BallTrendColumn(idstr,3) + "</td>";
		rsl += "<td width=246 valign=top id=zsTD name=zsTD style=\"display:none;\">" + this.BallTrendColumn(idstr,2) + "</td>";
		rsl += "<td width=246 valign=top id=zsTD name=zsTD style=\"display:none;\">" + this.BallTrendColumn(idstr,1) + "</td>";
		rsl += "<td width=128 valign=top id=zsTD name=zsTD style=\"display:inline;\">" + this.BallStatics(0,5) + "</td>";
		rsl += "<td width=128 valign=top id=zsTD name=zsTD style=\"display:none;\">" + this.BallStatics(0,3) + "</td>";
		rsl += "<td width=128 valign=top id=zsTD name=zsTD style=\"display:none;\">" + this.BallStatics(0,2) + "</td>";
		rsl += "</table>";
		return rsl;
	},
	
	//-------------------------------------------------------------------------

	// 最新开奖号码
	BallOpens : function ()
	{
		var rsl = "";
		rsl += "<table cellspacing=\"0\" cellpadding=\"0\" width=\"308\" class=\"tb1g\" border=\"1\" bordercolor=\"#FFFFFF\" style=\"text-align:center;\">";
		rsl += "<tr class=\"tr1g\">";
		rsl += "<td>期号</td>";
		rsl += "<td>中奖号码</td>";
		rsl += "<td>和值</td><td>奇偶</td><td>大小</td><td>质合</td>";
		rsl += "</tr>";
		var j=1;
		var bArray = this.dataTrend.split("|");
		for(var i=bArray.length-2; i>0; i--) {
			var lbuf = bArray[i].split(",");
			rsl += "<tr class=\"tr1g\">";
			rsl += "<td>" + lbuf[0] + "</td>";
			rsl += "<td>" + FileFormat(lbuf[1]) + "</td>";
			j = 2;
			while(j<(lbuf.length-1)) {
				rsl += "<td>" + lbuf[j] + "</td>";
				j++;
			}
			rsl += "</tr>";
		}
		rsl += "<tr class=\"tr1g\">";
		rsl += "<td>期号</td>";
		rsl += "<td>中奖号码</td>";
		rsl += "<td>和值</td><td>奇偶</td><td>大小</td><td>质合</td>";
		rsl += "</tr>";
		rsl += "</table>";
		return rsl;
	},

	// 显示123个号码的冷热统计
	BallHot : function ()
	{
		var rsl = "";
		rsl += "<table cellspacing=\"0\" cellpadding=\"0\" width=\"308\" class=\"tb1g\" border=\"1\" bordercolor=\"#FFFFFF\" style=\"text-align:center;\">";
		rsl += "<tr class=\"tr1g\">";
		rsl += "<td colspan=2>号球</td>";
		rsl += "<td>前一</td><td>遗漏</td>";
		rsl += "<td>前二</td><td>遗漏</td>";
		rsl += "<td>前三</td><td>遗漏</td>";
		rsl += "<td>号球</td>";
		rsl += "</tr>";
		var bArray = this.dataHot.split("|");
		for(var i=0; i<game.select; i++) {
			var lbuf = bArray[i].split(",");
			rsl += "<tr id=\"BallFlag\" class=\"tr1g\">";
			rsl += "<td style=\"color:#9A0000;\"><span id=\"BallPoint\"></span></td>";
			rsl += "<td style=\"color:#9A0000;\">" + lbuf[0] + "</td>";
			rsl += "<td>" + lbuf[1] + "</td>";
			rsl += "<td>" + lbuf[2] + "</td>";
			rsl += "<td style=\"color:#F4A200;\">" + lbuf[3] + "</td>";
			rsl += "<td style=\"color:#F4A200;\">" + lbuf[4] + "</td>";
			rsl += "<td>" + lbuf[5] + "</td>";
			rsl += "<td>" + lbuf[6] + "</td>";
			rsl += "<td style=\"color:#9A0000;\">" + lbuf[0] + "</td>";
			rsl += "</tr>";
		}
		rsl += "<tr class=\"tr1g\">";
		rsl += "<td colspan=2>号球</td>";
		rsl += "<td>前一</td><td>遗漏</td>";
		rsl += "<td>前二</td><td>遗漏</td>";
		rsl += "<td>前三</td><td>遗漏</td>";
		rsl += "<td>号球</td>";
		rsl += "</tr>";
		rsl += "</table>";
		return rsl;
	},

	// 显示123个号码的冷热统计
	BallQ21 : function()
	{
		var rsl = "";
		if(this.dump[8]!=null) {
			eval(this.dump[8]);
		}
		else {
			var scr = AjaxXML("/Include/Load.aspx?js=d11_BallQ21","");
			this.dump[8] = scr;
			eval(scr);
		}
		return rsl;
	},

	// 显示123个号码的冷热统计
	BallQ22 : function()
	{
		var rsl = "";
		if(this.dump[9]!=null) {
			eval(this.dump[9]);
		}
		else {
			var scr = AjaxXML("/Include/Load.aspx?js=d11_BallQ22","");
			this.dump[9] = scr;
			eval(scr);
		}
		return rsl;
	},

	// 显示号球频率与遗漏
	BallFreq : function (ballName1, ballName2)   
	{   
		var rsl = "";
		var bArray = this.dataFreq.split("|");

		var freqs = bArray[1];
		var freqa = freqs.split(",");
		var losts = bArray[2];
		var losta = losts.split(",");

		var vscale = this.BallScale(freqs, 10); 
		rsl += "<table width=\"" + this.WidthDefault + "\" height=\"100\" cellpadding=0 cellspacing=0 style=\"padding-top:2px;padding-bottom:2px;text-align:center;color:#957E4C;border:solid 1px #FFDF8B;\">";
		rsl += "<tr>"; 
		for(var i=1; i<=game.select; i++) {
			rsl += "<td width=33 valign=bottom align=center class=\"wz\">";
			rsl +=  freqa[i-1] + "<br>";
			rsl += "<img id=\"" + ballName1 + "\" name=\"" + ballName1 + "\" src=\"/images/r1.jpg\" style=\"filter:alpha(opacity=" + opNormal + ")\" width=14 height=" + (parseInteger(vscale*parseInteger(freqa[i-1]))+2) + " onclick=\"BallClick(this,1," + i + ");\">";
			rsl += "</td>";   
		}
		rsl += "<td align=left class=xz valign=bottom>&nbsp;<- 频率</td>";   
		rsl += "<td align=right class=f9></td>";   
		rsl += "</tr>"; 

		vscale = this.BallScale(losts, 20); 
		rsl += "<tr height=1 bgcolor=\"#F4A200\"><td colspan=" + game.select + "></td></tr>";   
		rsl += "<tr>";   
		for(var i=1; i<=game.select; i++) {
			rsl += "<td width=33 valign=top align=center class=\"wz\">";
			rsl += "<img id=\"" + ballName2 + "\" name=\"" + ballName2 + "\" src=\"/images/c1.jpg\" style=\"filter:alpha(opacity=" + opNormal + ")\" width=14 height=" + (parseInteger(vscale*parseInteger(losta[i-1]))+4) + " onclick=\"BallClick(this,1," + i + ");\">";
			rsl += "<br>" + losta[i-1];
			rsl += "</td>";   
		}
		rsl += "<td align=left class=xz valign=top>&nbsp;<- 遗漏</td>";   
		rsl += "<td></td>";   
		rsl += "</tr>";   
		rsl += "</table>";

		return rsl;
	},

	// idstr 号球名称, title 表格标题，用于控制显示
	BallShow : function (idstr, title)
	{
		var rsl = "";
		rsl += "<table width=\"" + this.WidthDefault + "\" cellpadding=0 cellspacing=0 style=\"padding-bottom:2px;text-align:center;color:#957E4C;border:solid 1px #FFDF8B;border-top:solid 0px #FFDF8B;\">";
		rsl += "<tr height=30>";
		for(var i=1; i<=game.select; i++) {
			rsl += "<td width=33>";
			if( idstr == "BallRedKey") {
				rsl += "<img id=\"" + idstr + "\" name=\"" + idstr + "\" src=\"/images/balls/25x25/w" + I2(i) + ".gif\" style=\"filter:alpha(opacity=" + opNormal + ")\" onclick=\"BallClick(this,1," + I2(i) + ")\">";
			}
			else {
				rsl += "<img id=\"" + idstr + "\" name=\"" + idstr + "\" src=\"/images/balls/25x25/r" + I2(i) + ".gif\" style=\"filter:alpha(opacity=" + opNormal + ")\" onclick=\"BallClick(this,1," + I2(i) + ")\">";
			}
			rsl += "</td>";
		}
		rsl += "<td align=left>&nbsp;<- " + title + "</td>";
		rsl += "</tr>";
		rsl += "</table>";
		return rsl;
	},

	// 缩水选项
	BallOptions : function (count)   
	{   
		var rsl = "";
		if(this.dump[10]!=null) {
			eval(this.dump[10]);
		}
		else {
			var scr = AjaxXML("/Include/Load.aspx?js=d11_BallOptions","");
			this.dump[10] = scr;
			eval(scr);
		}
		return rsl;
	},  


	// 标准投注 号码缩水投注或直接按长号码投注
	BallMatrix : function()
	{
		var rsl = "";
		if(this.dump[11]!=null) {
			eval(this.dump[11]);
		}
		else {
			var scr = AjaxXML("/Include/Load.aspx?js=d11_BallMatrix","");
			this.dump[11] = scr;
			eval(scr);
		}
		return rsl;
	},

	BallFile : function()
	{
		var rsl = "";
		rsl += "<table width=\"" + this.WidthDefault + "\" cellpadding=0 cellspacing=0 class=xz style=\"border:solid 0px #FFDF8B;\">";
		rsl += "<tr>";
		rsl += "<td>";
		rsl += "<span id=HelpGroup0 style=\"padding:8px;padding-left:0px;display:inline-block;line-height:15px;\">";
		rsl += "· 请从文件中拷贝一些" + game.name + "的号码，并粘贴到下面的输入区；<br>";
		rsl += "· 然后点击添加按钮，由系统进行检查并增加到可投注号码集合中。<br>";
		rsl += "· 文件请按每行一注号码的形式保存。比如第一行是 <span id=\"CodeExample\">01,02,03,04,05</span>。<br>";
		rsl += "· 应为半角数字，用逗号或空格分开。单位数号码前须加0。";
		rsl += "</span>";
		rsl += "<textarea name=\"content\" style=\"width:398px;height:85px;\" id=\"codetxt\" name=\"codetxt\" class=xz></textarea>";
		rsl += "</td>";
		rsl += "</tr>";
		rsl += "</table>";
		return rsl;
	}

}

//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

