//-------kenoplusV3.081021 by Ron modify  ----------------------//

LotteryUtil = {
	randCount : 30,
	rand : function(min,max){
		return Math.round((max-min)*Math.random()+min);
	},
	randBind : function(min,max,amount){
		var _numbers = [];
		var i=0;
		while(i<amount){
			var _num = LotteryUtil.rand(min,max).toFormat(2);
			if(!_numbers.include(_num))
			{
				_numbers.push(_num);
				i++;
			}
		}
		return _numbers.join('|');
	}
};
var awardArray = new Array();
awardArray[1] = Array(0,4);
awardArray[2] = Array(0,0,16);
awardArray[3] = Array(0,0,4,30);
awardArray[4] = Array(0,0,2,10,40);
awardArray[5] = Array(0,0,0,4,40,250);
awardArray[6] = Array(0,0,0,4,8,50,600);
awardArray[7] = Array(2,0,0,0,4,25,160,8000);
awardArray[8] = Array(2,0,0,0,4,10,40,700,20000);

Number.prototype.toFormat = function(pLen){
	var str = new String(this);
	if(str.length<pLen)
	{
		for(var i=str.length;i<pLen;i++)
		{
			str = "0" + str;
		};
	};
	return str;
};

var Ball = Class.create();
Ball.prototype = {
	initialize: function(value,isSelected) {
    this.value = value;
    this.isSelected = typeof isSelected!='undefined' ?isSelected:false;
  },
  getHtml : function(){
	return '<li' + (this.isSelected==true ?' class="red"':'') + ' onclick="ballClick(this);">' + this.value + '</li>';
  },
  getValue : function(){
	return this.isSelected ? this.value : '';
  }
};

var BallList = Class.create();
BallList.prototype = {
	initialize: function(id,begin,end) {
	_selfBallList = this;
    this.id		= id;
    this.begin	= begin;
    this.end	= end;
	this._createBalls();
	this.setHtml();
  },
  _createBalls : function(){
	this.Balls = [];
	for(var i=this.begin;i<=this.end;i++){
		var number = new String(i);
		number = number.length==1?'0' + number:number;
		var ball = new Ball(number,false);
		this.Balls.push(ball);
	};
  },
  setHtml : function(){
	var str = '<ul>';
	this.Balls.each(function(ball){
		str += ball.getHtml();
	});
	str += '</ul>';
	//alert(str)
	Element.update(this.id,str);
	},
  setValue : function(values){
	var str = values.split('|');
	this.Balls.each(function(ball){
			ball.isSelected = values.indexOf(ball.value)!=-1;
	});
	this.setHtml();
  },
  clear : function(){
	this.setValue("");
  },
  find : function(iterator){
	return this.Balls.find(iterator);
  },
  getValue : function(){
	var returnVal = [];
	this.Balls.each(function(ball){
		ball.isSelected==true ? returnVal.push(ball.getValue()) :'';
	});
	return returnVal.join('|');
  },
  ballClick : function(obj){
  }
};
var __left_element = '';
var __right_element = '';

function ballClick(element){

	if (globalVals.chipInAreaSound == soundEnum.On)
	{	
		try
		{
			$('playsound2').controls.play();
		}
		catch(ex){}
	}

	var _o = element;
	var _n	 = 0;
	var value1,value2,values;
	while(_o.tagName!='DIV' && _o.tagName!='BODY'){
		_o = _o.parentNode;
	};
	if(_o.id.indexOf('left')!=-1){
		_n = 0;
		value1 = left1b.getValue();
		value2 = left1c.getValue();
	}else if(_o.id.indexOf('right')!=-1){
		_n = 1;
		value1 = right1b.getValue();
		value2 = right1c.getValue();
	};
	values = value1  + (value1!='' && value2!=''? '|': '') + value2;
	if( !element.className || element.className =='')
	{
		if(checkValue(values)){
			element.className='red';
		}else{
			return;
		};
	}else{
		element.className='';
	};
	//为什么不支持下面的表达式呢？少一个括号
	// (!element.className || element.className =='') ? (checkValue() ? element.className='red'  : return): element.className='';
	eval("var thisWS = " + _o.id.replace("chipin-note-",""));
	var ball = thisWS.find(function(_elem){
		return _elem.value == element.innerHTML;
	});
	if(!ball)	return;
	ball.isSelected = !ball.isSelected;
	if(_n==0){
		value1 = left1b.getValue();
		//alert(value1)
		value2 = left1c.getValue();
		
	}else if(_n==1){
		value1 = right1b.getValue();
		value2 = right1c.getValue();
	};
	
	values = value1  + (value1!='' && value2!=''? '|': '') + value2;
	//var _v = $('balls').value.split(',');
	//_v[_n] = values;
	$('chipin-note-' + (_n == 0 ? 'left':'right') + '2a').innerHTML = '<ul><li>' + values.replace(/\|/g,'</li><li>') + '</li></ul>';
	if(values == "")
	{
		clearNumber(_n+1);
		return ;
	}
	$('chipin_' + (_n+1) + '_balls').value = values;
	
	//同步显示文本框和总金额
	var len = values.split('|').length;
	if(_n== 0)
		UpdateRan(values,"left");
	else if(_n == 1)
		UpdateRan(values,"right");
	$("chipin_number_"+_n).value = SortNumber(values);
	$("chipin_number_"+_n).style.color = "";
	UpdateAwardMoney(values,len,_n);
	//updateForm();//更新投注单总金额
	//$('chipin_number_' + _n).value = values;
	//$('balls').value = _v.join(',');
};

    //-------kenoplusV3.081021 by Ron modify  ----------------------//
    function FrisbeeChk()
    {
      
      var value1_left,value2_left,value1_right,value2_right;
      value1_left=left1b.getValue()
      value2_left=left1c.getValue()
      value1_right=right1b.getValue()
      value2_right=right1c.getValue()
      
      values_left = value1_left  + (value1_left!='' && value2_left!=''? '|': '') + value2_left;
      values_right = value1_right  + (value1_right!='' && value2_right!=''? '|': '') + value2_right;
      
      //alert(values_left);
      if ($("frisbeeChk").checked & values_left.split('|').length>7) 
      {
        $("frisbeeChk").checked=false;
        alert('选择快乐飞盘，最多只能选7个号码');
        return;
      }
      
      if ($("frisbeeChk").checked & values_right.split('|').length>7) 
      {
        $("frisbeeChk").checked=false;
        alert('选择快乐飞盘，最多只能选7个号码');
        return;
      }
     
     if (values_left!="")
     {
         UpdateAwardMoney(values_left,values_left.split('|').length,0);
         
     }
     
     if (values_right!="")
     {
         
         UpdateAwardMoney(values_right,values_right.split('|').length,1);
     }
      //alert(left1b.getValue())
    }

    //---------------------------------------------//

function checkValue(value){
	var flag = false;
	var _value = value.split('|');
    
    //-------kenoplusV3.081021 by Ron modify  ----------------------//
    
    //alert($("frisbeeChk").checked)
    
    if (!$("frisbeeChk").checked)
       flag = _value.length<10;
    else
       flag = _value.length<7;
    
    if(!flag){
		if ($("frisbeeChk").checked)   alert('选择快乐飞盘，最多只能选7个号码');
		 else  alert('最多能选10个号码');
	}

    //---------------------------------------------//
    
//    flag = _value.length<8;

//	if(!flag){
//		
//		alert('最多能选8个号码');
//	}
	return flag;
};
function showAward(n,value){
	if(n==0){
	}else{
	};
	var _value = value.split('|');
};

function randSelect(evt,n){
	var element = Event.element(evt);
	if(element.innerHTML=='')
		return;
		
    _length = parseInt(element.innerHTML);
    //-------kenoplusV3.081021 by Ron modify  ----------------------//
    
	//alert(element.innerHTML)
	
	if (_length>7& $("frisbeeChk").checked)
	{
	  alert('选择快乐飞盘，最多只能选7个号码');
	  return;
	}
	
	
    //---------------------------------------------//
	var _number = LotteryUtil.randBind(1,80,_length);
	//先清空已选择的
	while(CheckRepeat(_number).split('|').length != _length)
	{
		_number = LotteryUtil.randBind(1,80,_length);
	}
	if(n==1){
		left1c.setValue(_number);
		left1b.setValue(_number);
		__left_element ? $(__left_element).className='' :'' ;
		__left_element = element.id;
		ClearRan("left");
	}else if(n==2){
		right1b.setValue(_number);	
		right1c.setValue(_number);
		__right_element ? $(__right_element).className='' :'' ;
		__right_element = element.id;
		ClearRan("right");
		
	};
	
	element.className = "red";
	//同步显示文本框和总金额
	var len = _number.split('|').length;
	var _n	= n-1;
	var sornum = SortNumber(_number);
	$("chipin_number_"+_n).value = sornum;
	$("chipin_number_"+_n).style.color = '';
	UpdateAwardMoney(sornum,_length,n-1);
	
};
function clearNumber(n){

var InitVal0 = "手动输入第一注选号(如01 23)";
var InitVal1 = "手动输入第二注选号(如01 23)";
var money;
var sumoney = parseInt($('spanTotalPrice').innerHTML,10);


var money2 = multi2*2;
	if(n==1){
		var multi1 = $F('chipin_note_multi1');
		var money1 = 0;
		
		if($('chipin_number_0').value != "" && InitVal0 != $('chipin_number_0').value)
			money1 = parseInt(multi1)*2;
		left1c.clear();
		left1b.clear();
		__left_element ? $(__left_element).className='' :'' ;
		__left_element='';
		$('chipin-note-left2a').innerHTML = '';
		$('chipin_1_balls').value = '';
		$('chipin_number_0').value = InitVal0;
		$('chipin_number_0').style.color = '#CECECE';
		ClearRan('left');
		$('chipin-note-left2c').innerHTML = "0元";
		$('chipin_note_multi1').selectedIndex = 0;
        //-------kenoplusV3.081021 by Ron modify  ----------------------//
        if ($("frisbeeChk").checked) money1=money1*2
        money1=money1* $('chipin_periodcounts').value
        //---------------------------------------------------------------//
        money = sumoney -money1;
	}else if(n==2){
		var multi2 = $F('chipin_note_multi2');
		var money2 = 0;
		if($('chipin_number_1').value != "" && InitVal1!= $('chipin_number_1').value)
			money2 = parseInt(multi2) * 2;
		right1b.clear();
		right1c.clear();
		__right_element ? $(__right_element).className='' :'' ;
		__right_element='';
		$('chipin-note-right2a').innerHTML = '';
		$('chipin_2_balls').value = '';
		$('chipin_number_1').value = InitVal1;
		$('chipin_number_1').style.color = '#CECECE';
		ClearRan('right');
		$('chipin-note-right2c').innerHTML = "0元";
		$('chipin_note_multi2').selectedIndex = 0;
        //-------kenoplusV3.081021 by Ron modify  ----------------------//
        if ($("frisbeeChk").checked) money2=money2*2
        money2=money2* $('chipin_periodcounts').value
        //---------------------------------------------------------------//
        
		money = sumoney -money2;
	};
	
	if ($('chipin_number_0').value==InitVal0 &  $('chipin_number_1').value==InitVal1)
	{
	    $("frisbeeChk").checked=false;
	    $("periodscounts").selectedIndex = 0;
	    $('chipin_periodcounts').value=1;
	    money=0;
	    
	}
	//alert( $('chipin_number_0').value +"|"+ $('chipin_number_1').value)
	
/*
	if($('chipi_note_bottom2f'))
	{
		$('chipi_note_bottom2f').style.display = "none";
	    if( inputedDealPassword == "true" )
		    $('chipi_note_bottom2f').style.display = (money >= 40 ? '' : 'none');
	}
*/	
	$('spanTotalPrice').innerHTML = money;
};
var Ptype = {
H8_S1:5,
H8_S2:6,
H8_S3:7,
H8_S4:8,
H8_S5:9,
H8_S6:10,
H8_S7:11,
H8_S8:12

}
var DirectChipIn = Class.create();
DirectChipIn.prototype = {
	initialize: function() {
	this.balls1 = [];
	this.balls2 = [];
	this.Multiple1 = 1;
	this.Multiple2 = 1;
	this.periodid = 0;
	this.ptype1 = Ptype.H8_S1;
	this.ptype2 = Ptype.H8_S2;
	this.totalChipInCount = 0;
  }
}
var simpleChipIn = new DirectChipIn();

var OptionsHelper = {
		setOptions : function(obj, begin, end){
			obj.innerHTML = '';
			begin = begin * 1;
			end = end * 1;
			if(begin > end){
				var tmp = begin;
				begin = end;
				end = tmp;
			}
			for(var i = begin; i <= end; i ++) obj.options.add(new Option(i, i));
			obj.selectedIndex = obj.options.length - 1;
		},
		updateOptions : function(obj, toObj){
			var oldValue = toObj.value;
			OptionsHelper.setOptions(toObj, obj.value, obj.options[obj.options.length - 1].value);
			if(oldValue * 1 > obj.value * 1){
				var len = toObj.options.length;
				for(var i = 0; i < len; i ++) if(toObj.options[i].value == oldValue){toObj.options.selectedIndex = i;break;}
			}
		},
		setOptionsByLevel : function(id, level, value){
			//var values = [[1, 2, 3], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5, 10], [1, 2, 3, 4, 5, 10, 25]][level - 1];
			//-------kenoplusV3.081021 by Ron modify  ----------------------//
            var values = [[1, 2, 3], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5]][level - 1];
           //-------kenoplusV3.081021 by Ron modify  ----------------------//
 
			var len = values.length;
			var select = '<select id="{0}">'.format(id);
			for(var i = 0; i < len; i ++){
				select += '<option value="{0}"{1}>{0}</option>'.format(values[i], values[i] == value? ' selected="selected"' : '');
			}
			select += '</select>';
			return select;
		},
		selectByValue : function(obj, value){
			var len = obj.options.length;
			for(var i = 0; i < len; i ++) if(obj.options[i].value == value) {obj.selectedIndex = i; break;}
		}
}
//复式拖码
function ComplexBall(num){
	this.num = num;
	this.cssClass = '';
	this.toString = function(){
		return '<li{1}>{0}</li>'.format(this.num, this.cssClass == '' ? '' : ' class="' + this.cssClass + '"');
	}
}
//复式胆码
function ComplexDmBall(num){
	ComplexBall.apply(this, arguments);
	this.cssClass = 'green';
}
//复式组合
function ComplexBalls(dm, tm, ptype){
	this.danmas = [];
	this.tuomas = [];
	this.ptype = ptype | 0;
	if(dm.length != '') this.danmas = dm.split('|');
	if(tm.length != '') this.tuomas = tm.split('|');
	this.count = this.danmas.length + this.tuomas.length;
	this.initOptions = function(min, max){
		var len = Math.min(this.danmas.length, this.ptype);
		var span = this.ptype - this.tuomas.length;
		OptionsHelper.setOptions(min, span > 0 ? Math.min(span, len) : 0, len);
		OptionsHelper.selectByValue(min, len > min.value * 1  ? Math.max(min.value * 1, span) : Math.max(1, span));
		OptionsHelper.setOptions(max, min.value * 1, len);
	}
	this.toString = function(){
		var html = '<ul>';
		var len = this.danmas.length;
		for(var i = 0; i < len; i ++) html += new ComplexDmBall(this.danmas[i]);
		len = this.tuomas.length;
		for(var i = 0; i < len; i ++) html += new ComplexBall(this.tuomas[i]);
		html += '<div style="clear:both" /><ul>';
		return html;
	}
}

String.getCombine = function(m, n){
	return new Array(m + 1).join(1) + new Array(n - m + 1).join(0);
}

Array.prototype.combination = function(m){
	var n = this.length;
	if(m >= n) return [this];
	if(m == 0) return [[]];
	var temp = String.getCombine(m, n);
	var list = [];
	var pos;
	while((pos = temp.indexOf('10')) > -1){
		var v = [];
		for(var i = 0; i < n; i ++) if(temp.charAt(i) == '1') v.push(this[i]);
		list.push(v);
		var onecount = 0;
		for(var i= 0; i < pos; i++) if(temp.charAt(i) == '1') onecount ++;
		temp = String.getCombine(onecount, pos) + '01' + temp.substr(pos + 2);
	}
	var v = [];
	for(var i = 0 ; i < n ; i++) if(temp.charAt(i) == '1') v.push(this[i]);
	list.push(v);
	return list; 
}
function getSolution(balls1, balls2, mindanma, maxdanma, ptype, multi){//Log([balls1, balls2, mindanma, maxdanma, ptype, multi]);
	var regValid = /^((0[1-9]|[1-7]\d|80)\D?)*$/;//看数字是否合法
	var regRepeat = /(\d\d).+?\1/;//看有无重复的数字
	if(!regValid.test(balls1) ||  !regValid.test(balls2)){
		alert('胆码或拖码数字不合法');
		return '';
	}
	if(regRepeat.test(balls1) || regRepeat.test(balls2)){
		alert('胆码或拖码中含有重复的数字');
		return '';
	}
 
	balls1 = balls1.split(/\|/);
	balls2 = balls2.split(/\|/);
	mindanma = mindanma | 0;
	maxdanma = maxdanma | 0;
	multi = multi | 0;
	var count = (ptype | 0) - 4;

	if(maxdanma < 0 || maxdanma < mindanma || mindanma > count || maxdanma > count || mindanma + balls2.length < count || maxdanma + balls2.length < count || balls1.length < maxdanma || balls1.length < mindanma){
		alert("胆码数目定义错误");
		return '';
	}
	var alllists = [];
	for(var i = mindanma ; i <= maxdanma; i++){
		var listdanma = balls1.combination(i);
		var listtuoma = balls2.combination(count - i);

		for(var di = 0; di < listdanma.length; di ++){
			var danmaselected = listdanma[di];
			var len = danmaselected.length;
			for(var ti = 0; ti < listtuoma.length; ti ++){
				var balls = [];
				var tuomaselected = listtuoma[ti];
				for(var j = 0; j < count; j++){
					if(j < len) balls[j] = danmaselected[j]
					else balls[j] = tuomaselected[j - len];
				}
				alllists.push(balls.join('|').replace(/(^\|+)|(\|+$)/, '') + '×' + multi);
			}
		}
	}
	return alllists.join('\r\n');
}

function showOptions(){
	if($('dm_options').innerHTML == '(未选择)') $('dm_options').innerHTML = '<select id="dm_min" name="dm_min" onchange="complex_min_change(this, $(\'dm_max\'))"></select>－<select id="dm_max" name="dm_max" onchange="$(\'maxdanma\').value = this.value"></select>个';
}

function hideOptions(){
	$('dm_options').innerHTML = '(未选择)';
	$('mindanma').value = 0;
	$('maxdanma').value = 0;
}


function complex_min_change(obj, toObj){
	OptionsHelper.updateOptions(obj, toObj);
	$('mindanma').value = obj.value;
	$('maxdanma').value = toObj.value;
}