var ssq = {};
//初始化
ssq.init = function(){
	xh.init();
	xh.mergeEvent(ssq);
	var o = {
		"3" : { max:20, base1:6, base2:1, rn:33, bn:16, name1:"红球", name2:"蓝球" },				//双色球
		"28" : { max:18, base1:5, base2:2, rn:35, bn:12, maxMoney:20000, name1:"前区号码", name2:"后区号码"  }		//大乐透
	};
	fw.object.merge(ssq, o[trade.lotid]);
	var aa = xh.getBall("numberList");
	(trade.lotid==3||aa.length==94) && (xh.diff=false);
	var a = [];
	aa.length>ssq.rn+ssq.bn && (a[2]={ ol:aa.splice(0,ssq.rn), dt:0, color:"red" });
	a[0] = { ol:aa.splice(0,ssq.rn), color:"red" };
	a[2] && (a[0].dt=2);
	aa.length>ssq.bn && (a[3]={ ol:aa.splice(0,ssq.bn), dt:1 });
	a[1] = { ol:aa.splice(0,ssq.bn) };
	a[3] && (a[1].dt=3);

	xh.setNumberItem(a);
	ssq.setMode();
	xh.redraw();
	if (fw.getId("addMoney")){
		ssq.addMoney();
		trade.addEvent({ obj:"addMoney", handle:ssq.addMoney });
	}
}
window.init = ssq.init;

//获取号码字符串
ssq.onNumberToString = function (nb){
	nb = nb || xh.nb;
	var f = function(a){return a.sort().join(",") };
	if (nb[3]) return "[D:" + f(nb[2]) + "][T:" + f(nb[0]) + "] | [D:" + f(nb[3]) + "][T:" + f(nb[1]) + "] 胆拖";
	if (nb[2]) return "[D:" + f(nb[2]) + "][T:" + f(nb[0]) + "] | " + f(nb[1]) + " 胆拖";
	return f(nb[0]) + "|" + f(nb[1]) + " " + (ssq.onGetTempCount(nb)>1?"复式":"单式");
}

//获取号码
ssq.onStringToNumber = function (str){
	var a = str.split("|");
	var r = [];
	var f = function(i){ return fw.each(a[i].split("][T:"),function(s){return s.match(/\d+/g)||[]}) };
	var rq=f(0), bq=f(1);
	rq[1] ? (r[0]=rq[1],r[2]=rq[0]) : r[0]=rq[0];
	bq[1] ? (r[1]=bq[1],r[3]=bq[0]) : r[1]=bq[0];
	return r;
}

//判断号码是否可选择
ssq.onSelectBefore = function (o){
	var ct = ssq.selectCount();
	if (!o.dt&&o.color=="red"&&ct.n1==ssq.max){
		return !!alert("最多只能选择"+ssq.max+"个"+ssq.name1+"！");
	}else if (o.rowIdx==2&&ct.d1==ssq.base1-1){
		return !!alert(ssq.name1+"最多只能选择"+(ssq.base1-1)+"个胆码!");
	}else if (o.rowIdx==3&&ct.d2==ssq.base2-1){
		return !!alert(ssq.name2+"最多只能选择"+(ssq.base2-1)+"个胆码!");
	}else if(ssq.maxMoney&&ssq.onGetTempCount()*trade.singlePrice>ssq.maxMoney){
		return !!alert("金额不能超过"+fw.conv.formatRMB(ssq.maxMoney)+"!");
	}
	if (o.dt&&o.dt.selected){
		xh.clearIt(o.dt);
	}
	return true;
}

//检查号码是否可以组合成注
ssq.onNumberGroup = function (){
	var ct = ssq.selectCount();
	if (ct.n1==0&&ct.n2==0){
		return !!alert("请您起码选择一注号码后再添加!");
	}else if (ct.n1<ssq.base1){
		return !!alert("至少要选择"+ssq.base1+"个"+ssq.name1+"！");
	}else if(ct.n2<ssq.base2){
		return !!alert("至少要选择"+ssq.base2+"个"+ssq.name2+"！");
	}else if(trade.lotid==3 && trade.playid==135 && ct.n1 < 7){
		return !!alert('胆码加拖码个数必须大于6!');
	}else if(trade.lotid==28 && trade.playid==135 && ct.d1<1 && ct.d2<1){
		return !!alert('胆拖投注前后区至少有一区有胆!');
	}else if (!xh.nb[3]&&xh.nb[2]&&ct.d1==0){
		return !!alert("至少要选择1个胆码!");
	}else if(xh.nb[3]&&ct.n1==ssq.base1&&ct.d1>0){
		return !!alert("非全拖情况下"+ssq.name1+"胆码跟拖码的总数至少为"+(ssq.base1+1)+"个!");
	}else if(xh.nb[3]&&ct.n2==ssq.base2&&ct.d2>0){
		return !!alert("非全拖情况下"+ssq.name2+"胆码跟拖码的总数至少为"+(ssq.base2+1)+"个!");
	}
	return true;
}

//获取临时注数
ssq.onGetTempCount = function (nb){
	nb = nb || xh.nb;
	var ct = ssq.selectCount(nb);
	if (trade.lotid==3){
		if (ct.n1<ssq.base1||ct.n2<ssq.base2||nb[2]&&ct.d1==0) return 0;
	}else if (nb[3]){
		if (ct.n1<ssq.base1+1&&ct.n1-ct.d1<ssq.base1 || ct.n2<ssq.base2+1&&ct.n2-ct.d2<ssq.base2) return 0;
	}else{
		if (ct.n1<ssq.base1 || ct.n2<ssq.base2) return 0;
	}
	return  fw.math.C(ct.n1-ct.d1, ssq.base1-ct.d1) * fw.math.C(ct.n2-ct.d2, ssq.base2-ct.d2);
}

//机选
ssq.onJixuan = function (n){
	var arr = [];
	var a = xh.getAllNumber();
	for (var i=0;i<n;i++){
		arr[i] = [fw.array.random(a[0],ssq.base1), fw.array.random(a[1],ssq.base2)];
	}
	return arr;
}

//定胆机选
ssq.onDdjixuan = function (n){
	if (xh.nb[2]){
		return !!alert("没有这个玩法!");
	}
	var ct = ssq.selectCount();
	if (ct.n1<1&&ct.n2<1){
		return !!alert("请至少选择1个胆码！");
	}else if (ct.n1==ssq.base1&&ct.n2==ssq.base2){
		return !!alert(ssq.name1+"和"+ssq.name2+"已可以组成单注，胆码个数超出！");
	}else if (ct.n1>ssq.base1){
		return !!alert(ssq.name1+"最多只能选择"+ssq.base1+"个胆码！");
	}else if (ct.n2>ssq.base2){
		return !!alert(ssq.name2+"最多只能选择"+ssq.base2+"个胆码！");
	}
	var arr = [];
	var a = xh.getAllNumber();
	var tuo1 = fw.array.supplement(a[0], xh.nb[0]);
	var tuo2 = fw.array.supplement(a[1], xh.nb[1]);
	for (var i=0;i<n;i++){
		arr[i] = [
			fw.array.random(tuo1, ssq.base1-ct.n1).concat(xh.nb[0]),
			fw.array.random(tuo2, ssq.base2-ct.n2).concat(xh.nb[1])
		];
	}
	return arr;
}

//号码拆分数据(只胆托)
ssq.onNumberSplit = function (nb){
	var f = function(ball,color){ return '<font color="'+color+'">'+ball+'</font>' };
	var rts = fw.math.CR(nb[0], ssq.base1-nb[2].length);
	var bts = nb[3] ? fw.math.CR(nb[1], ssq.base2-nb[3].length) : nb[1];
	var r = [];
	var rd = nb[3] || [];
	var redq, blueq;
	fw.callEach(rts, function(rt){
		redq = nb[2].concat(rt).sort();
		fw.callEach(bts, function(bt){
			blueq = rd.concat(bt).sort();
			r.push( f(redq,"red") + " | " + f(blueq,"blue") );
		});
	});
	return r;
}

//选择的球数
ssq.selectCount = function(nb){
	nb = nb || xh.nb;
	var d1 = (nb[2]||"").length;
	var d2 = (nb[3]||"").length;
	return { n1:d1+nb[0].length, n2:d2+nb[1].length, d1:d1, d2:d2 };
}

//追加投注
ssq.addMoney = function (){
	var b = fw.getId("addMoney").checked;
	//alert(b);
	fw.getId("playid").value = trade.playid = b ? (trade.playid==1?98:trade.playid==3?99:trade.playid==135?143:trade.playid) : (trade.playid==98?1:trade.playid==99?3:trade.playid==143?135:trade.playid);
	trade.singlePrice =  b ? 3 : 2;
	fw.setHTML("single", trade.singlePrice);
	xh.updateTemp();
	trade.updateInfo();
}

//设置模式
ssq.setMode = function(){
	var md = fw.dom.getName("xh_mode");
	if (md.length==0) return;

	var btn = fw.dom.getName("jixuanBtn");
	var idx = 0;
	var _nb = [];
	var jx = function (i){
		return function (){
			var obj = fw.getId("jxBox");
			with (obj.style) display=display!=""?"":"none";
			if (obj.style.display=="none") return;

			var n = i<2 ? ssq.rn : ssq.bn;
			idx = [2,0,3,1][i];
			_nb = xh.nb[[0,2,1,3][i]];
			var l = n - _nb.length;
			if (i==0) l = Math.min(l, ssq.base1-1);
			else if (i==2) l = Math.min(l, ssq.base2-1);
			var ops = fw.getId("jxCount").options;
			fw.dom.clearChild("jxCount");
			for(var j=1;j<=l;j++) ops.add(new Option(j,j));
			fw.dom.setXy(obj, ps[i].x, ps[i].y+20);
		}
	}
	var chgMode = function(dp){
		return function(){
			for (var i=0;i<4;i++) btn[i].style.visibility = dp;
		}
	}
	md[0].onclick = chgMode("hidden");
	md[1].onclick = chgMode("visible");
	chgMode(md[0].checked?"hidden":"visible")();
	var ps=[];
	for (var i=0;i<4;i++){
		btn[i].onclick = jx(i);
		ps[i] = trade.getXy(btn[i]);
	}
	fw.getId("jxConfirm").onclick = function(){
		var a = xh.getAllNumber();
		var t = fw.array.supplement(a[idx], _nb);
		xh.clearNumber(xh.number[idx]);
		var arr = fw.array.random(t, fw.getId("jxCount").value-0);
		xh.selectItem(arr, idx);
		fw.getId("jxBox").style.display = "none";
		xh.updateTemp();
	}
}

