﻿//全局变量
var qh_count=30;        //默认显示期数
var is_update_dlt=1;    //是否自动抓取更新大乐透数据,如果设置为1,则在首次进入页面时,会自动从官方更新大乐透数据
var datas;              //大乐透数据,全局变量
var lx=0;               //显示类型,0为综合走势,1为和值分布,2为连号分布
var waitdiv;

set_lx();
function set_lx()
{
    var strHref=document.location.href;
    var index=strHref.indexOf('lx=');
    if(index<0)
        return;
    index+=3;
    strHref=strHref.substr(index,1);
    switch(strHref)
    {
        case '1':
            lx=1;
            break;
        case '2':
            lx=2;
            break;
        case '3':
            lx=3;
            break;
        default:
            lx=0;
            break;
    }
    
}


//设置大乐透期号选择栏
function set_select_dltqh()
{
    var option={
		parameters:"",
		method:"post",
		onSuccess:function(transport){
		    if(transport.responseText==""||transport.responseText=="-1")
		    {
		        var showdiv=document.getElementById("showdiv");
		        showdiv.innerText="数据获取失败，请检查网络或重试。";		        
		        return;
		    }
		    var qhs=transport.responseText.split(',');
		    if(qhs.length>0)
		    {
		        var div_sl1=document.getElementById("div_sl1");
		        var div_sl2=document.getElementById("div_sl2");		        
		        if(div_sl1==null || div_sl2==null)
    		        return;
    		    var str_sl1="<select id='sl_1'>";
    		    var str_sl2="<select id='sl_2'>";
    		    for(var i=0;i<qhs.length;i++)
	    	    {
	    	        str_sl1+="<option value ="+qhs[i]+">"+qhs[i]+"</option>";
	    	        str_sl2+="<option value ="+qhs[i]+">"+qhs[i]+"</option>";
		        }
		        str_sl1+="</select>";
		        str_sl2+="</select>";
		        div_sl1.innerHTML=str_sl1;
		        div_sl2.innerHTML=str_sl2;
		        var sl1=document.getElementById("sl_1");
		        sl1.selectedIndex=qh_count-1;
		        if(is_update_dlt>0)
		        {
		            //需要自动更新大乐透数据
		            is_update_dlt=0;
		            dltautoupdate();
		        }
		        get_dlt_data(); //默认显示大乐透综合走势图
		    }
		    },
		onFailure:function(transport){
			//alert("数据提交失败，请检查网络或重试。");
			}
	}
	var request=new Ajax.Request("data.aspx?oper=dltqh",option);
}

//按照sl1与sl2的选项，申请大乐透数据
function get_dlt_data()
{
    waitdiv=document.getElementById("waitdiv");
    if(waitdiv!=null)
        waitdiv.innerHTML="<img src='img/wait.gif' />正在获取数据，请稍后...";
    var qhs=document.getElementById("sl_1").value;
    var qhe=document.getElementById("sl_2").value;
    if(qhs==null||qhe==null)
        return;    
    var option={
		parameters:"qhs="+qhs+"&qhe="+qhe,
		method:"post",
		onSuccess:function(transport){
		    if(transport.responseText==""||transport.responseText=="-1")
		    {
		        alert("没有找到指定数据，请重新选择！");
		        return;
		    }		    
		    eval("datas="+transport.responseText);      //转换数据为java数组
		    if(datas.length<0)
		    {
		        if(waitdiv!=null)
		            waitdiv.innerHTML="数据获取失败，请检查网络或重试。";		        
		        return;
		    }
		    if(waitdiv!=null)
                waitdiv.innerHTML="<img src='img/wait.gif' />数据获取成功，正在准备输出...";    
		    setTimeout(outdlt,500);          //延迟半秒，以便显示新的等待提示
		    },
		onFailure:function(transport){
			//alert("数据提交失败，请检查网络或重试。");
			}
	}
	var request=new Ajax.Request("data.aspx?oper=dltdata",option);
}

//根据lx类型,输出大乐透图表
function outdlt()
{
    switch(lx)
    {
        case 0:
            outdltzh();
            break;
        case 1:
            outdlthz();
            break;
        case 2:
            outdltlh();
            break;
    }
    if(waitdiv!=null)
        waitdiv.innerHTML="";
}

//输出大乐透综合走势数据
function outdltzh()
{
    lx=0;
    var btdiv=document.getElementById("btdiv");
    if(btdiv!=null)
        btdiv.innerText="超级大乐透综合走势图";        
    var showdiv=document.getElementById("showdiv");		   
	if(showdiv!=null)
	{
	//以下代表成功获取数据时组织输出html
	    var outhtml="<TABLE cellSpacing=0 borderColorDark=#ecf5ff cellPadding=0 width=980 align=center bgColor=#aae3ff borderColorLight=#4da6ff border=1><TBODY><TR><TD rowSpan=2 class=bt>开奖<br>期数</TD><TD colSpan=7 class=bt>开奖号码</TD><TD colSpan=35 class=bt>前　区　号　码　分　布　区</TD><TD colSpan=12 class=bt>后区号码分布区</TD><TD colSpan=3 class=bt>号码分析</TD></TR>";   //表头
	    outhtml+="<TR><TD colSpan=5 class=bt>前区号</TD><TD colSpan=2 class=bt>后区号</TD>";
	    for(var i=1;i<=35;i++)
	        outhtml+="<td class=bt>"+i+"</td>";
	    for(var i=1;i<=12;i++)
	        outhtml+="<td class=bt>"+i+"</td>";
	    outhtml+="<td class=bt>和值</td><td class=bt>单双</td><td class=bt>重号</td></tr>";
	    var count_r=new Array();
		var count_b=new Array();
		var hz,count_d,count_s,count_ch;
		for(var i=0;i<datas.length;i++)
		{
		    hz=0;
		    count_d=0;
		    count_s=0;
		    count_ch=0;
		    for(var j=1;j<=5;j++)
		    {
		        hz+=datas[i][j];      //计算和值，前区
		        if(datas[i][j]%2==1)
		            count_d++;
		        else
		            count_s++;
		        if(i>0)
		        {
		            //计算重号
		            for(var k=1;k<=5;k++)
		                if(datas[i][j]==datas[i-1][k])
		                    count_ch++;
		        }
		    }
		    outhtml+="<TR><td class=qh>"+datas[i][0]+"</td><td class=rb>"+FormatNumber(datas[i][1])+"</td><td class=rb>"+FormatNumber(datas[i][2])+"</td><td class=rb>"+FormatNumber(datas[i][3])+"</td><td class=rb>"+FormatNumber(datas[i][4])+"</td><td class=rb>"+FormatNumber(datas[i][5])+"</td><td class=bb>"+FormatNumber(datas[i][6])+"</td><td class=bb>"+FormatNumber(datas[i][7])+"</td>";
		    for(var j=1;j<=35;j++)
		    {
		        for(var k=1;k<=5;k++)
		        {
		            if(datas[i][k]==j)
		            {
		                outhtml+="<td class=rb1_1>"+FormatNumber(datas[i][k])+"</td>";
		                if(count_r[j]==null)
		                    count_r[j]=1;
		                else
		                    count_r[j]+=1;
		                break;
		            }
		            if(k==5)
		                outhtml+="<td class=rb1_0></td>";
		        }
		    }
		    for(j=1;j<=12;j++)
		    {
		        if(datas[i][6]==j||datas[i][7]==j)
		        {
		            outhtml+="<td class=bb1_1>"+FormatNumber(j)+"</td>";
		            if(count_b[j]==null)
		                count_b[j]=1;
		            else
		                count_b[j]+=1;		                
		        }
		        else
		            outhtml+="<td class=bb1_0></td>";
		    }
		    outhtml+="<td class=hmfx>"+hz+"</td><td class=hmfx>"+count_d+":"+count_s+"</td><td class=hmfx>"+count_ch+"</td></tr>";
		}
		
		
		//自选号码功能
		outhtml+="<tr><td colSpan=8 class=bt>自选号</td>";		
		for(j=1;j<=35;j++)
		    outhtml+="<td class=zxrb_0 onclick='zx_dlt_click(this,"+j+",\"r\");'></td>";
		for(j=1;j<=12;j++)
		    outhtml+="<td class=zxbb_0 onclick='zx_dlt_click(this,"+j+",\"b\");'></td>";
		outhtml+="<td class=bt colSpan=3></td></tr>";
		
		
		
		
		outhtml+="</TBODY></TABLE><br /><div class=bz>注：和值、单双、重号等项目都只计算前区奖号，没有统计后区号!</div><div class=bz>友情提醒：如您使用的是IE浏览器请勿过大选择数据显示,如想查询更多数据请使用Firefox浏览器.</div>";
		showdiv.innerHTML=outhtml;
	}
}

//输出大乐透和值分布数据
function outdlthz()
{
    lx=1;
    var btdiv=document.getElementById("btdiv");
    if(btdiv!=null)
        btdiv.innerText="大乐透和值分布图";    
    var showdiv=document.getElementById("showdiv");		   
	if(showdiv!=null)
	{
	//以下代表成功获取数据时组织输出html
	    var outhtml="<TABLE cellSpacing=0 borderColorDark=#ecf5ff cellPadding=0 width=980 align=center bgColor=#aae3ff borderColorLight=#4da6ff border=1><TBODY><TR><TD rowSpan=2 class=bt>开奖<br>期数</TD><TD colSpan=30 class=bt>前区和值分布</TD><TD colSpan=21 class=bt>后区和值分布</TD></TR>";   //表头
	    outhtml+="<td class=bt>15<br>|<br>20</td>";
	    for(var i=21;i<=161;i+=5)
	        outhtml+="<td class=bt>"+i+"<br>|<br>"+(i+4)+"</td>";
	    for(var i=3;i<=23;i++)
	        outhtml+="<td class=bt>"+i+"</td>";
	    var hzyls_r=new Array();
	    var hzyls_b=new Array();
	    for(var i=0;i<30;i++)
	        hzyls_r[i]=0;
	    for(var i=0;i<21;i++)
	        hzyls_b[i]=0;
	    var hznow_r,hznow_b;
	    var count_r=new Array();
	    for(i=0;i<30;i++)
	        count_r[i]=0;
	    var count_b=new Array();
	    for(i=0;i<21;i++)
	        count_b[i]=0;
	    for(i=0;i<datas.length;i++)
	    {
	        hznow_r=datas[i][1]+datas[i][2]+datas[i][3]+datas[i][4]+datas[i][5];
	        hznow_b=datas[i][6]+datas[i][7];
	        outhtml+="<tr><td class='hz_qh'>"+datas[i][0]+"</td>";
	        for(var j=0;j<30;j++)
	        {
	            if(j==0&&hznow_r<=20)
	            {
	                //20以下
	                hzyls_r[j]=0;
	                outhtml+="<td class='hzr_1'>"+hznow_r+"</td>";
	                count_r[j]++;
	            }
	            else if(j==29&&hznow_r>=161)
	            {
	                //166以上
	                hzyls_r[j]=0;
	                outhtml+="<td class='hzr_1'>"+hznow_r+"</td>";
	                count_r[j]++;
	            }
	            else if((j>0&&j<26)&&(hznow_r>((j-1)*5+20)&&hznow_r<=(j*5+20)))
	            {
	                //位于本区间
	                hzyls_r[j]=0;
	                outhtml+="<td class='hzr_1'>"+hznow_r+"</td>";
	                count_r[j]++;
	            }
	            else
	            {
	                //遗漏增加
	                hzyls_r[j]++;
	                outhtml+="<td class='hzr_0'>"+hzyls_r[j]+"</td>";	                
	            }
	        }
	        for(var j=0;j<21;j++)
	        {
	            if(hznow_b==(j+3))
	            {
	                //位于本区间
	                hzyls_b[j]=0;
	                outhtml+="<td class='hzb_1'>"+hznow_b+"</td>";
	                count_b[j]++;
	            }
	            else
	            {
	                //遗漏增加
	                hzyls_b[j]++;
	                outhtml+="<td class='hzb_0'>"+hzyls_b[j]+"</td>";	                
	            }
	        }
	        outhtml+="</tr>";
	    }
	    
	    //加入出现次数
	    outhtml+="<tr><td class=bt>出现次数</td>";
	    for(i=0;i<30;i++)
	        outhtml+="<td class=rb>"+count_r[i]+"</td>";
	    for(i=0;i<21;i++)
	        outhtml+="<td class=bb>"+count_b[i]+"</td>";
	    
	    outhtml+="</TBODY></TABLE>";
	    showdiv.innerHTML=outhtml;
	}
}

//输出大乐透连号分布数据
function outdltlh()
{
    lx=2;
    var btdiv=document.getElementById("btdiv");
    if(btdiv!=null)
        btdiv.innerText="大乐透连号分布图";
    var showdiv=document.getElementById("showdiv");		   
	if(showdiv!=null)
	{
	    //以下代表成功获取数据时组织输出html
	    var outhtml="<TABLE cellSpacing=0 borderColorDark=#ecf5ff cellPadding=0 width=980 align=center bgColor=#aae3ff borderColorLight=#4da6ff border=1><TBODY><TR><TD rowSpan=2 class=bt>开奖<br>期数</TD><TD colSpan=35 class=bt>前　区　号　码　分　布</TD><TD colSpan=12 class=bt>后　区　号　码　分　布</TD></TR>";   //表头
	    outhtml+="<tr>";
	    var i,j,k;
	    for(i=1;i<=35;i++)
	        outhtml+="<td class=bt>"+FormatNumber(i)+"</td>";
	    for(i=1;i<=12;i++)
	        outhtml+="<td class=bt>"+FormatNumber(i)+"</td>";
	    outhtml+="</tr>";
	    
	    var count_r=new Array();
	    for(i=0;i<35;i++)
	        count_r[i]=0;
	    var count_b=new Array();
	    for(i=0;i<12;i++)
	        count_b[i]=0;
	    
	    for(i=0;i<datas.length;i++)
	    {
	        outhtml+="<tr><td class='qh'>"+datas[i][0]+"</td>";
	        for(j=1;j<=35;j++)
	        {
	            for(k=1;k<=5;k++)
	            {	                
	                if(datas[i][k]==j)
	                {
	                    count_r[j-1]++;
	                    //本位是中奖号,下面要判断是否与前后有连号
	                    if(k==1)
	                    {
	                        //1位与2位比较
	                        if((datas[i][k]+1)==(datas[i][k+1]))
	                            outhtml+="<td class=lhr_2>"+FormatNumber(j)+"</td>";     //lh_2代表连号 lh_1代表奖号 lh_0代表无号
	                        else
	                            outhtml+="<td class=lhr_1>"+FormatNumber(j)+"</td>";
	                    }
	                    else if(k==5)
	                    {
	                        //5位与4位比较
	                        if((datas[i][k]-1)==(datas[i][k-1]))
	                            outhtml+="<td class=lhr_2>"+FormatNumber(j)+"</td>";     //lh_2代表连号 lh_1代表奖号 lh_0代表无号
	                        else
	                            outhtml+="<td class=lhr_1>"+FormatNumber(j)+"</td>";
	                    }
	                    else
	                    {
	                        //其他位双向比较
	                        if((datas[i][k]+1)==(datas[i][k+1])||(datas[i][k]-1)==(datas[i][k-1]))
	                            outhtml+="<td class=lhr_2>"+FormatNumber(j)+"</td>";     //lh_2代表连号 lh_1代表奖号 lh_0代表无号
	                        else
	                            outhtml+="<td class=lhr_1>"+FormatNumber(j)+"</td>";
	                    }
	                    break;
	                }
	                if(k==5)
	                    outhtml+="<td class=lhr_0>&nbsp;</td>";
	            }
	        }
	        for(j=1;j<=12;j++)
	        {
	            if(datas[i][6]==j)
	            {
	                count_b[j-1]++;
	                if((datas[i][6]+1)==datas[i][7])
	                    outhtml+="<td class=lhb_2>"+FormatNumber(j)+"</td>";
	                else
	                    outhtml+="<td class=lhb_1>"+FormatNumber(j)+"</td>";
	            }
	            else if(datas[i][7]==j)
	            {
	                count_b[j-1]++;
	                if((datas[i][6]+1)==datas[i][7])
	                    outhtml+="<td class=lhb_2>"+FormatNumber(j)+"</td>";
	                else
	                    outhtml+="<td class=lhb_1>"+FormatNumber(j)+"</td>";
	            }
	            else
	                outhtml+="<td class=lhb_0>&nbsp;</td>";
	        }
	        outhtml+="</tr>";
	    }
	    
	    //自选号码功能
		outhtml+="<tr><td class=bt>自选号</td>";		
		for(j=1;j<=35;j++)
		    outhtml+="<td class=zxrb_0 onclick='zx_dlt_click(this,"+j+",\"r\");'></td>";
		for(j=1;j<=12;j++)
		    outhtml+="<td class=zxbb_0 onclick='zx_dlt_click(this,"+j+",\"b\");'></td>";
		outhtml+="</tr>";
		
		//加入出现次数
	    outhtml+="<tr><td class=bt>次数</td>";
	    for(i=0;i<35;i++)
	        outhtml+="<td class=rb>"+count_r[i]+"</td>";
	    for(i=0;i<12;i++)
	        outhtml+="<td class=bb>"+count_b[i]+"</td>";
	    
	    outhtml+="</TBODY></TABLE>";
	    showdiv.innerHTML=outhtml;
	}
}

//自动更新大乐透数据
function dltautoupdate()
{    
    var option={
		parameters:"",
		method:"post",
		onSuccess:function(transport){
		    //无需返回数据
		    set_select_dltqh();
		    },
		onFailure:function(transport){
			//alert("数据提交失败，请检查网络或重试。");
			}
	}
	var request=new Ajax.Request("data.aspx?oper=dltautoupdate",option);
}


//自选大乐透点击函数
function zx_dlt_click(obj,no,color)
{
    if(obj.innerHTML=="")
    {
        obj.innerHTML=(no<10?"0"+no:no);
        if(color=="r")
            obj.className="zxrb_1";
        else
            obj.className="zxbb_1";
    }
    else
    {
        obj.innerHTML="";
        if(color=="r")
            obj.className="zxrb_0";
        else
            obj.className="zxbb_0";
    }
}

//格式化输出数字函数，按两位进行输出
function FormatNumber(data)
{
    if(data<10)
        return "0"+data;
    else
        return data;
}

