var path="Images/Lottery";
var gameId=7;
var playType;//1:单式;2:复式;3:自动
var auto=1;//1:人工;2:自动:取消自动
var ballSeqMin=1;//选球的最小编号
var ballSeqMax=30;//选球最大编号

var selectedBalls=new Array();//已选球
var selectBallNum=7//单式，选球的个数
var selectedBallMin=8//复式,选球的最小个数
var selectedBallMax=12;//复式,选球的最大个数

var Ticket=new Array();//所有投注数据
var TicketLengthMax=5;//最大投注个数
var timesMax=999;//最大倍数
var anteNumber;//实际投注数
var moneyMax=30000;

function init()
{	
	selectType(1);
}
function selectType(type)
{
	if(playType!=type)
		{
		if(type==1)
		{
			$("type1_td").background=path+"/images2/bg_ch_01.gif";			
			$("type2_td").background=path+"/images2/bg_ch_02.gif";
			$("type3_td").background=path+"/images2/bg_ch_02.gif";
			
			$("danshi").style.display="block";
			$("fushi").style.display="none";
			$("zidong").style.display="none";
			
			$("cancelAuto_tr").style.display="none";
			$("fushi_ballNum_tr").style.display="none";
			
			$("danshi_randomNumImg_tr").style.display="block";
			$("fushi_randomNumImg_tr").style.display="none";
			$("zidong_randomNumImg_tr").style.display="none";
			
			showTimes();
			selectedBallMax=7;
			TicketLengthMax=5;
			auto=1;
		}else if(type==2)
		{
			$("type1_td").background=path+"/images2/bg_ch_02.gif";
			$("type2_td").background=path+"/images2/bg_ch_01.gif";
			$("type3_td").background=path+"/images2/bg_ch_02.gif";
			
			$("danshi").style.display="none";
			$("fushi").style.display="block";
			$("zidong").style.display="none";
			
			
			$("cancelAuto_tr").style.display="none";
			$("fushi_ballNum_tr").style.display="block";
			
			$("danshi_randomNumImg_tr").style.display="none";
			$("fushi_randomNumImg_tr").style.display="block";
			$("zidong_randomNumImg_tr").style.display="none";
			
			showTimes();
			selectedBallMax=12;
			TicketLengthMax=1;
			auto=1;
		}else if(type==3)
		{
			$("type1_td").background=path+"/images2/bg_ch_02.gif";
			$("type2_td").background=path+"/images2/bg_ch_02.gif";
			$("type3_td").background=path+"/images2/bg_ch_01.gif";
			
			$("danshi").style.display="none";
			$("fushi").style.display="none";
			$("zidong").style.display="block";
			
			
			$("cancelAuto_tr").style.display="block";
			$("fushi_ballNum_tr").style.display="none";
			
			$("danshi_randomNumImg_tr").style.display="none";
			$("fushi_randomNumImg_tr").style.display="none";
			$("zidong_randomNumImg_tr").style.display="block";
			hiddenTimes();
			selectedBallMax=7;
			TicketLengthMax=1;
			auto=2;
		}
		playType=type;
		initTicket();
		
		clear(selectedBalls);
		initBall();
		for(var k=0;k<TicketLengthMax;k++)
		{
			removeCode(k+1);
		}
		$("times").value=1;
	}
	setLotteryInfo();
}
//显示倍投
function showTimes()
{
	$("times_span1").style.display="block";
	$("times_span2").style.display="block";
	$("times_span3").style.display="block";
	$("times_span4").style.display="block";
}
//隐藏倍投
function hiddenTimes()
{
	$("times_span1").style.display="none";
	$("times_span2").style.display="none";
	$("times_span3").style.display="none";
	$("times_span4").style.display="none";
}
//初始化Ticket
function initTicket()
{
	Ticket.clear();
}
//页面加载时加载选球
function writeBall(count)
{
	document.writeln("<ul>")
	for(var i=1;i<=count;i++)
	{
		document.writeln("<li><a href='#'><img name='ball' id='ball_"+i+"' src='"+path+"/images/ball_red_"+wrapNum(i)+".gif' width='30' height='30' border='0' onclick='selectBall(" + i + ")' /></a></li>");
	}
	document.writeln("</ul>");
}
//初始化选球，供用户选择
function initBall()
{
	var ball=document.ball;
	for(var i=1;i<=ball.length;i++)
	{
		ball[i-1].src=path+"/images/ball_red_"+wrapNum(i)+".gif";
	}
	return true;
}
//单击选球事件
function selectBall(seqNum)
{
	if(exist(selectedBalls,seqNum))
	{
		$("ball_"+seqNum).src=path+"/images/ball_red_"+wrapNum(seqNum)+".gif";
		selectedBalls.removeByValue(seqNum);
	}else
	{
		if(selectedBalls.length>=selectedBallMax)
		{
			alert("选球最大个数为["+selectedBallMax+"]");
			return false;
		}
		selectedBalls.push(seqNum);
		$("ball_"+seqNum).src=path+"/images/ball_red_"+wrapNum(seqNum)+"_over.gif";
	}
	return true;
}

//单式机选
function randomNum(count)
{
	if(playType==3)
	{
		removeCode(1);
	}
	clear(selectedBalls);
	initBall();
	if(count>1&&getTicketCount()!=0)
	{
		if(confirm("随机["+count+"]注,已选号码将丢失"))
		{
			for(var k=0;k<TicketLengthMax;k++)
			removeCode(k+1);
		}else
		{
			return;
		}
	}
	for(var i=0;i<count;i++)
	{
		randomBall(selectBallNum);
		make();
	}
}
//机选
function randomBall(num)
{
	var selectAbleNum=selectedBallMax-selectedBalls.length;
	
	if(selectAbleNum==0)
	{
		alert("选球最大个数为["+selectedBallMax+"]");
		return;
	}
	var randomNum;
	if(num<selectAbleNum)
		randomNum=num;
	else
		randomNum=selectAbleNum;
	for(var i=0;i<randomNum;i++)
	{
		var selectedSeq;
		while(true)
		{
			selectedSeq=GetRandomNum(ballSeqMin,ballSeqMax);
			if(exist(selectedBalls,selectedSeq))
				continue;
			else
				 break;	
		}
		selectBall(selectedSeq);
	}
}
//随机复式
function random_fushi()
{
	removeCode(1);
	clear(selectedBalls);
	initBall();
	randomBall($("fushi_BallNum").value);
	make();
}
//用javascript生成一个数之间的一个随机数
function GetRandomNum(Min,Max){
    var Range = Max - Min;
    var Rand = Math.random();
    return(Min + Math.round(Rand * Range));
} 
//审查生成号码的合法性
function checkCode()
{
	if((playType==1)||(playType==3))
	{
		if(selectedBalls.length!=selectBallNum)
		{
			alert("请选择"+selectBallNum+"个球!");
			return false;
		}
	}else if(playType==2)
	{
		if(!(selectedBalls.length>=selectedBallMin&&selectedBalls.length<=selectedBallMax))
		{
			alert("号码非法，最少["+selectedBallMin+"]个最多["+selectedBallMax+"]个号码!");
			return false;
		}
	}
	return true;
}
//生成投注号码
function make()
{
	if (getTicketCount() >= TicketLengthMax) {
		clear(selectedBalls);
		initBall();
		alert("最大["+TicketLengthMax+"]注");
		return;
	}
		if (checkCode()) {
			selectedBalls.SortBy(1,"");
			if(playType==1)
			{
			if ($("danshi_code1").innerHTML == "") {
				$("danshi_code1").innerHTML = arrayToHtml();
				Ticket[0] = selectedBalls.toString();
			} else if ($("danshi_code2").innerHTML == "") {
				$("danshi_code2").innerHTML = arrayToHtml();
				Ticket[1] = selectedBalls.toString();
			} else if ($("danshi_code3").innerHTML == "") {
				$("danshi_code3").innerHTML = arrayToHtml();
				Ticket[2] = selectedBalls.toString();
			} else if ($("danshi_code4").innerHTML == "") {
				$("danshi_code4").innerHTML = arrayToHtml();
				Ticket[3] = selectedBalls.toString();
			} else if ($("danshi_code5").innerHTML == "") {
				$("danshi_code5").innerHTML = arrayToHtml();
				Ticket[4] = selectedBalls.toString();
			}
		}else if(playType==2)
		{
			if ($("fushi_code1").innerHTML == "") {
				$("fushi_code1").innerHTML = arrayToHtml();
				Ticket[0] = selectedBalls.toString();
			} 
		}else if(playType==3)
		{
			if ($("zidong_code1").innerHTML == "") {
			$("zidong_code1").innerHTML = arrayToHtml();
			Ticket[0] = selectedBalls.toString();
			} 
			
		}
		clear(selectedBalls);
		initBall();
	}
		setLotteryInfo();
}
//获得实际投注数
function getTicketCount()
{
	
	var TicketLength=Ticket.length;
	for(var i=0;i<Ticket.length;i++)
	{
		if(Ticket[i]==null)
		{
			TicketLength--;
		}
	}
	return TicketLength;
}
//删除投注号码
function removeCode(codeSeq)
{
	
	if(playType==1)
	{
		$("danshi_code"+codeSeq).innerHTML="";
	}
	else if(playType==2)
	{
		$("fushi_code"+codeSeq).innerHTML="";
	}
	else if(playType==3)
	{
		$("zidong_code"+codeSeq).innerHTML="";
	}
	Ticket[codeSeq-1]=null;
	setLotteryInfo();
	
}
//将选中号码转换成html以供显示
function arrayToHtml()
{
	var str="<ul>";
	for(var i=0;i<selectedBalls.length;i++)
	{
		str+="<li><a href='#' style='background:url("+path+"/images/bg_ball_choice_red.gif) no-repeat ;'>"+wrapNum(selectedBalls[i])+"</a></li>";
	}
	str+="</ul>"
	return str;
}
//判断数据array中是否存在value
function exist(array,value)
{
	for(var i=0;i<array.length;i++)
	{
		if(array[i]==value)
			return true;
	}
	return false;
}
//球名称与编号映射
function wrapNum(seqNum)
{
	return seqNum<10?"0"+seqNum:seqNum;
}
//清除数据array中的所有元素
function clear(array)
{
	array.splice(0,array.length);
}
function checkTimes(value)
{
	var times=$("times");
	if(checkNumeric(value))
	{
		if(value>timesMax)
		{
			alert("最大值为"+timesMax);
			times.value=timesMax;
			times.focus();
			times.select();
			return false;
		}
		return true;
	}else
	{
		times.value=1;
		times.focus();
		times.select();
		return false;
	}
}
//复式随机选球数减一
function ballSubtract()
{
	var value=$("fushi_BallNum").value;
	if(value>selectedBallMin)
	{
		$("fushi_BallNum").value--;
	}
}
//复式随机选球数加一
function ballPlus()
{
	var value=$("fushi_BallNum").value;
	if(value<selectedBallMax)
	{
		$("fushi_BallNum").value++;
	}
}

//倍数减一
function timesSubtract()
{
	var times=$("times");
	var timesValue=times.value;
	if(checkNumeric(timesValue))
	{
		if(timesValue==1)
		{
			alert("最小值为"+1)
			return;
		}
		times.value--;
	}
	else
	{
		times.focus();
		times.select()
	}
	setLotteryInfo();
}
//倍数加一
function timesPlus()
{
	var times=$("times");
	var timesValue=times.value;
	if(checkNumeric(timesValue))
	{
		if(timesValue<timesMax)
		{
			times.value++;
		}
		else
		{
			alert("最大值为"+timesMax);
			times.value=timesMax;
		}
	}
	else
	{
		times.focus();
		times.select()
	}
	setLotteryInfo();
}
function checkNumeric(value)
{
	var re=/^[1-9]*[1-9][0-9]*$/;
	if(!re.test(value))
	{
		alert("请输入正整数");
		return false;
	}else
	{
		return true;
	}
}
function frmSubmit()
{
	if($("money").innerText>moneyMax)
	{
		alert("单笔金额最大"+moneyMax);
		return;
	}
	if((playType!=4)&&(getTicketCount()==0))
	{
		alert("你还没有选号");
		return;
	}
	var typename="";
	switch (playType) {
	case 1:
		typename="单式";
		$("f_playType").value="101";
		break;
	case 2:
		typename="复式";
		$("f_playType").value="102"
		break;
	case 3:
		typename="自动";
		$("f_playType").value="999"
		break;
	default:
		break;
	}
	alert("七乐彩:"+typename+"\r\n投注数:"+getTicketCount()+"\r\n号码："+Ticket.join("&")+"\r\n倍数:"+$("times").value+"\r\n注数:"+$("anteNumber").innerText+"\r\n金额:"+$("money").innerText+"\r\n是否自动投注:"+auto);
	
	ds.reload({
//		params: {'gameid':7, 'playtype':$("f_playType").value, 'amount':$("times").value, 'money':$("money").innerText, 'anteCode':Ticket.join("&"), 'autoTz':auto},
		params: {'lotordparam.gamename':'307', 
				 'lotordparam.seqnum':$("f_seqnum").value, 
				 'lotordparam.playtype':$("f_playType").value, 
				 'lotordparam.amount':$("times").value, 
				 'lotordparam.money':$("money").innerText, 
				 'lotorddtlparam.antecode':Ticket.join("&"), 
				 'lotordparam.ordtype':auto},
				 
		callback: function(r, options, success){
			if(success){
				Ext.Msg.alert('投注结果', r[0].get('returnMsg'));
			}else{   
				Ext.Msg.alert('投注失败', r[0].get('returnMsg'));
			}
		}
	});
}
var ds = new Ext.data.Store({
	proxy: new Ext.data.HttpProxy({
		url:'lotTicketSend.action'
	}),
	reader: new Ext.data.JsonReader({
		root: 'rows'
	},[
		{name:'returnMsg'}
	])
});
function setLotteryInfo()
{
	var timesNumber=$("times").value;
	var money;
	$("timesNumber").innerText=$("times").value;
	switch (playType) {
	case 1:
		anteNumber=getTicketCount();
		break;
	case 2:
		if(getTicketCount()>0)
			anteNumber=getAnteNumber(Ticket[0]);
		else
			anteNumber=0;
		break;
	case 3:
		anteNumber=getTicketCount();
	break;
	case 4:
		anteNumber=121;
		break;
	default:
		break;
	}
	money=anteNumber*2*timesNumber;
	$("timesNumber").innerText=timesNumber;
	$("anteNumber").innerText=anteNumber;
	$("money").innerText=money;
}
//计算复式投注的实际注数
function getAnteNumber(fushiCode)
{
	return anteNumber = comp(selectBallNum,fushiCode.split(",").length);
}
//C(m,n)求组合算法
function comp(head,foot){
	var A = new Number(head);
	var B = new Number(foot);
	var C = 1;
	for(var i = B-A+1;i<=B;i++)
		C = C*i;
	for(var i = 2;i<=A;i++)
		C=C/i;
	return C;
}
