var path="Images/Lottery";
var gameId=5;
var playType;//1:单式;2:复式;3:自动
var auto=1;//1:人工;2:自动:取消自动
var redBallSeqMin=1;//红球最小编号
var redBallSeqMax=33;//红球最大编号
var blueBallSeqMin=1;//蓝球最小编号
var blueBallSeqMax=16;//蓝球最大编号

var selectedRedBalls=new Array();//已选红球
var selectedBlueBalls=new Array();//已选蓝球
var selectedRedBallMax=6;//红球最大个数
var selectedBlueBallMax=1;//蓝球最大个数

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";
			
			$("randomBallImg_tr").style.display="block";
			$("cancelAuto_td").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();
			selectedRedBallMax=6;
			selectedBlueBallMax=1;
			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";
		
			$("randomBallImg_tr").style.display="none";
			$("cancelAuto_td").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();
			selectedRedBallMax=12;
			selectedBlueBallMax=16;
			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";
			
			$("randomBallImg_tr").style.display="block";
			$("cancelAuto_td").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();
			selectedRedBallMax=6;
			selectedBlueBallMax=1;
			TicketLengthMax=1;
			auto=2;
		}
		playType=type;
		initTicket();
		
		clear(selectedRedBalls);
		clear(selectedBlueBalls);
		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 writeRedBall(count)
{
	document.writeln("<ul>")
	for(var i=1;i<=count;i++)
	{
		document.writeln("<li><a href='#'><img name='ball_red' id='ball_red_"+i+"' src='"+path+"/images/ball_red_"+wrapNum(i)+".gif' width='30' height='30' border='0' onclick='selectRedBall(" + i + ")' /></a></li>");
	}
	document.writeln("</ul>");
}
//页面加载时加载蓝球
function writeBlueBall(count)
{
	document.writeln("<ul>")
	for(var i=1;i<=count;i++)
	{
		document.writeln("<li><a href='#'><img name='ball_blue' id='ball_blue_"+i+"' src='"+path+"/images/ball_blue_"+wrapNum(i)+".gif' width='30' height='30' border='0' onclick='selectBlueBall(" + i + ")' /></a></li>");
	}
	document.writeln("</ul>");
}
//初始化红、蓝球，供用户选择
function initBall()
{
	var ball_red=document.ball_red;
	var ball_blue=document.ball_blue;
	for(var i=1;i<=ball_red.length;i++)
	{
		ball_red[i-1].src=path+"/images/ball_red_"+wrapNum(i)+".gif";
	}
	for(var k=1;k<=ball_blue.length;k++)
	{
		ball_blue[k-1].src=path+"/images/ball_blue_"+wrapNum(k)+".gif";
	}
	return true;
}
//单击红球事件
function selectRedBall(seqNum)
{
	if(exist(selectedRedBalls,seqNum))
	{
		$("ball_red_"+seqNum).src=path+"/images/ball_red_"+wrapNum(seqNum)+".gif";
		selectedRedBalls.removeByValue(wrapNum(seqNum));
	}else
	{
		if(selectedRedBalls.length>=selectedRedBallMax)
		{
			alert("红球最大个数为["+selectedRedBallMax+"]");
			return false;
		}
		selectedRedBalls.push(wrapNum(seqNum));
		$("ball_red_"+seqNum).src=path+"/images/ball_red_"+wrapNum(seqNum)+"_over.gif";
	}
	
	return true;
}

//单击蓝球事件
function selectBlueBall(seqNum)
{
	if(exist(selectedBlueBalls,seqNum))
	{
		$("ball_blue_"+seqNum).src=path+"/images/ball_blue_"+wrapNum(seqNum)+".gif";
		selectedBlueBalls.removeByValue(wrapNum(seqNum));
	}else
	{
			if(selectedBlueBalls.length>=selectedBlueBallMax)
			{
				alert("蓝球最大个数为["+selectedBlueBallMax+"]");
				return false;
			}
		selectedBlueBalls.push(wrapNum(seqNum));
		$("ball_blue_"+seqNum).src=path+"/images/ball_blue_"+wrapNum(seqNum)+"_over.gif";
	}
	return true;
}
//机选
function randomNum(count)
{
	if(playType==3)
	{
		removeCode(1);
	}
	clear(selectedRedBalls);
	clear(selectedBlueBalls);
	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++)
	{
		randomRedBall(6);
		randomBlueBall(1);
		make();
	}
}
//机选红球
function randomRedBall(num)
{
	var selectAbleNum=selectedRedBallMax-selectedRedBalls.length;
	if(selectAbleNum==0)
	{
		alert("红球最大个数为["+selectedRedBallMax+"]");
		return;
	}
	var randomNum;
	if(num<selectAbleNum)
		randomNum=num;
	else
		randomNum=selectAbleNum;
	for(var i=0;i<randomNum;i++)
	{
		var selectedSeq;
		while(true)
		{
			selectedSeq=GetRandomNum(redBallSeqMin,redBallSeqMax);
			if(exist(selectedRedBalls,selectedSeq))
				continue;
			else
				 break;	
		}
		selectRedBall(selectedSeq);
	}
}
//机选蓝球
function randomBlueBall(num)
{
	var selectAbleNum=selectedBlueBallMax-selectedBlueBalls.length;
	if(selectAbleNum==0)
	{
		alert("蓝球最大个数为["+selectedBlueBallMax+"]");
		return;
	}
	var randomNum;
	if(num<selectAbleNum)
		randomNum=num;
	else
		randomNum=selectAbleNum;
	for(var i=0;i<randomNum;i++)
	{
		var selectedSeq;
		while(true)
		{
			selectedSeq=GetRandomNum(blueBallSeqMin,blueBallSeqMax);
			if(exist(selectedBlueBalls,selectedSeq))
				continue;
			else
				 break;	
		}
		selectBlueBall(selectedSeq);
	}
}
//随机复式
function random_fushi()
{
	removeCode(1);
	clear(selectedRedBalls);
	clear(selectedBlueBalls);
	initBall();
	randomRedBall($("fushi_RedBallNum").value);
	randomBlueBall($("fushi_BlueBallNum").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(selectedRedBalls.length!=6||selectedBlueBalls.length!=1)
		{
			alert("请选择6个红球和1个蓝球!");
			return false;
		}
	}else if(playType==2)
	{
		if(!((selectedRedBalls.length>6&&selectedRedBalls.length<=12&&selectedBlueBalls.length>=1)||(selectedRedBalls.length>=6&&selectedRedBalls.length<=12&&selectedBlueBalls.length>1)))
		{
			alert("请选择正确号码!");
			return false;
		}
	}
	return true;
}
//生成投注号码
function make()
{
	if (getTicketCount() >= TicketLengthMax) {
		clear(selectedRedBalls);
		clear(selectedBlueBalls);
		initBall();
		alert("最大["+TicketLengthMax+"]注");
		return;
	}
		if (checkCode()) {
			selectedRedBalls.SortBy(1,"");
			selectedBlueBalls.SortBy(1,"");
			if(playType==1)
			{
			if ($("danshi_code1").innerHTML == "") {
				$("danshi_code1").innerHTML = arrayToHtml();
				Ticket[0] = selectedRedBalls.toString() + "#"
						+ selectedBlueBalls.toString();
			} else if ($("danshi_code2").innerHTML == "") {
				$("danshi_code2").innerHTML = arrayToHtml();
				Ticket[1] = selectedRedBalls.toString() + "#"
						+ selectedBlueBalls.toString();
			} else if ($("danshi_code3").innerHTML == "") {
				$("danshi_code3").innerHTML = arrayToHtml();
				Ticket[2] = selectedRedBalls.toString() + "#"
						+ selectedBlueBalls.toString();
			} else if ($("danshi_code4").innerHTML == "") {
				$("danshi_code4").innerHTML = arrayToHtml();
				Ticket[3] = selectedRedBalls.toString() + "#"
						+ selectedBlueBalls.toString();
			} else if ($("danshi_code5").innerHTML == "") {
				$("danshi_code5").innerHTML = arrayToHtml();
				Ticket[4] = selectedRedBalls.toString() + "#"
						+ selectedBlueBalls.toString();
			}
		}else if(playType==2)
		{
			if ($("fushi_code1").innerHTML == "") {
				$("fushi_code1").innerHTML = arrayToHtml();
				Ticket[0] = selectedRedBalls.toString() + "#"
						+ selectedBlueBalls.toString();
			} 
		}else if(playType==3)
		{
			if ($("zidong_code1").innerHTML == "") {
			$("zidong_code1").innerHTML = arrayToHtml();
			Ticket[0] = selectedRedBalls.toString() + "#"
					+ selectedBlueBalls.toString();
			} 
			
		}
		
		clear(selectedRedBalls);
		clear(selectedBlueBalls);
		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<selectedRedBalls.length;i++)
	{
		str+="<li><a href='#' style='background:url("+path+"/images/bg_ball_choice_red.gif) no-repeat ;'>"+selectedRedBalls[i]+"</a></li>";
	}
	for(var k=0;k<selectedBlueBalls.length;k++)
	{
		str+="<li><a href='#' style='background:url("+path+"/images/bg_ball_choice_blue.gif) no-repeat ;'>"+selectedBlueBalls[k]+"</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 redBallSubtract()
{
	var value=$("fushi_RedBallNum").value;
	if(value>6)
	{
		$("fushi_RedBallNum").value--;
	}
}
//复式随机红球数加一
function redBallPlus()
{
	var value=$("fushi_RedBallNum").value;
	if(value<12)
	{
		$("fushi_RedBallNum").value++;
	}
}
//复式随机蓝球数减一
function blueBallSubtract()
{
	var value=$("fushi_BlueBallNum").value;
	if(value>1)
	{
		$("fushi_BlueBallNum").value--;
	}
}
//复式随机蓝球数加一
function blueBallPlus()
{
	var value=$("fushi_BlueBallNum").value;
	if(value<16)
	{
		$("fushi_BlueBallNum").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(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);
	//'lotordparam.lotOrddtl[0].antecode':Ticket.join("&"), 
	ds.reload({
		params: {'lotordparam.gamename':'ssq', 
		'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.toString());
		else
			anteNumber=0;
		break;
	case 3:
		anteNumber=getTicketCount();
	break;

	default:
		break;
	}
	money=anteNumber*2*timesNumber;
	$("timesNumber").innerText=timesNumber;
	$("anteNumber").innerText=anteNumber;
	$("money").innerText=money;
}
//计算复式投注的实际注数
function getAnteNumber(fushiCode)
{
	var tiket=fushiCode.split("#");
	return anteNumber = comp(6,tiket[0].split(",").length) * tiket[1].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;
}
