var InitScheme = new Class({
	initialize : function(initFormId) {
		var alias = this;
		this.initForm = $(initFormId);
		
		var generateReqToken = function(){
			return new Date().getTime() + Math.random();
		};
		
		if(this.initForm.elements['request_token'] == null){
			if((navigator.appVersion.match(/9./i)=='9.')){
				var el = document.createElement('input');
				el.id = 'request_token_id';
				el.type = 'hidden';
				el.name = 'request_token';
				el.value = generateReqToken();
				this.initForm.appendChild(el);
			}else{
				this.initForm.adopt(new Element('input',{
					'type':'hidden',
					'name':'request_token',
					'value':generateReqToken()
				}));
			}
			
		}
		

		this.trs['chase'] = ['tr_chaseIssueNums'];
		
		this.saleTypeAddEvents(this);
		
		// 注册相关事件
		if(!this.isBeforehand()){
			if(!this.isPoly()){
				$$(this.initForm.elements['file']).addEvents({
					'change' : function(){
						alias.chgUploadFile(this);
					}
				});
				this.initForm.getElements('input[_name=submit_calUploadFileMoney]').addEvents({
					'click' : function(){
						alias.countUploadFileMoney();
					}
				});
			}
			$$(this.initForm.elements['chase']).addEvents({
				'click' : function(){
					alias.chgChase(this);
				}
			});
			this.initForm.getElements('input[_name=select_chaseIssueNums]').addEvents({
				'keyup' : function(){
					alias.chgChaseIssueNums(this);
				}
			});
		}else{
			$$(this.initForm.elements['betCost']).addEvents({
				'blur' : function(){
					alias.checkBetCost(this);
				},
				'keyup' : function(){
					var betCost = this.value;
					betCost = (/^\d/.test(betCost))?parseInt(betCost):0;
					if(betCost % alias.betMoney == 0){
						alias.calInvestment();
					}
				}
			});
		}
		$$(this.initForm.elements['saleType']).addEvents({
			'click' : function(event){
				alias.chgSaleType(this,event);
			}
		});
		$$(this.initForm.elements['minJoinCost'],this.initForm.elements['joinCost'],this.initForm.elements['baodiCost']).addEvents({
			'keyup' : function(){
				alias.calInvestment();
			}
		});
		$$(this.initForm.elements['allowJoinType']).addEvents({
			'change' : function(){
				alias.chgAllowJoinType(this);
			}
		});
		$$(this.initForm.elements['secretType']).addEvents({
			'click' : function(){
				alias.chgSecretType(this);
			}
		});
		
		// 设置form提交请求的相关操作
		var divSchemeSubmit = alias.initForm.getElement('div[_name=div_scheme_submit]');
		var divWaiting = alias.initForm.getElement('div[_name=div_submit_waiting]');
		var schemeFormOption = {
			onRequest: function(instance){

				//alert(alias.initForm.elements['request_token'].value);
				divSchemeSubmit.style.display = 'none';
				divWaiting.style.display = '';
			},
		    onSuccess: function(responseText, responseXML){
		    	if(isJsonString(responseText)){
		    		var jsonObj = JSON.decode(responseText);
		    		if(jsonObj.msg){
		    			if(jsonObj.msg.indexOf('充值') != -1){
		    				if(window.confirm(jsonObj.msg)){
		    					window.open('http://member.betzc.com/#PayPer');
		    				}
		    			}else{
			    			window.alert(jsonObj.msg);
		    			}
		    		}else{
		    			window.alert(responseText);
		    		}
		    	}else{
		    		alias.initSuccess(responseText);
		    	}
			},
			onFailure: function(instance){
				window.alert("提交出错了,可能是网络故障,请重试!");
			},
			onComplete: function(instance){
				var request_token_el = alias.initForm.elements['request_token'];
				if(request_token_el != null){
					//alert(request_token_el.value);
					request_token_el.value = generateReqToken();
					//alert(request_token_el.value);
				}else{
					//alert('request_token is null');
					//var temp = document.getElementById('fdsfds');
					//alert(temp == null);
				}
				
				divWaiting.style.display = 'none';
				divSchemeSubmit.style.display = '';
				//if(!alias.isUploadFile()){
				//	alias.initForm.getElements('input[type=file]').set('disabled',false);
				//}
			}
		};
		this.initForm.set('send', schemeFormOption);
		var fn = function() {
			if(window.confirm(alias.getConfirmMsg())){
				if(alias.isUploadFile()){
					alias.initForm.formUpload(schemeFormOption);
				}else{
					alias.initForm.getElements('input[type=file]').set('disabled',true);
					alias.initForm.send();
				}
			}
		};
		this.initForm.addEvent('submit', function(e) {
			new Event(e).stop();//停止表单的提交事件
			
			if(alias.checkSchemeForm()){
				LoingDialog.show({
					el : null,
					method : fn
				});
			}
		});
	},
	
	initSuccess : function(responseText){
		document.getElementById('container').innerHTML = responseText;
		refreshLoginInfo();//刷新页头的用户信息
		window.location.hash = "#top"; 
		if($type($('A0'))=='element'){
			window.location.hash = "A0";
		}
		
		//加载前10个可加入方案
		var topTenListDiv = $('topTenList');
		if(topTenListDiv != null){
			var url = topTenListDiv.get('_href');
			if(typeof url == 'string'){
				var htmlRequest = new Request.HTML({
					url: url,
					update:topTenListDiv,
					onComplete:function(responseTree, responseElements, responseHTML, responseJavaScript){
						if(this.isSuccess()){
							topTenListDiv.style.display = '';
						}
					}
				});
				htmlRequest.get({
					'noCache':new Date().getTime()
				});
			}
		}
	},
	
	/** 每注彩票金额 */
	betMoney : 2,
	
	costRegex : /^\d+(\.(\d{1,2})?0*)?$/,
	
	saleTypes:{
		share : 'SHARE',
		self : 'SELF'
	},
	
	trs:{
	
	},
	
	/**
	 * 初始化调用
	 */
	saleTypeAddEvents : function (obj){
		obj.trs[obj.saleTypes.share] = ['tr_commission','tr_minJoinCost','tr_joinCost','tr_baodiCost','tr_allowJoinType','tr_friends','tr_organigerMsg'];
		obj.trs[obj.saleTypes.self] = ['tr_chase','tr_chaseIssueNums','tr_chaseDetail','tr_chaseWonStop'];
		
		if(!obj.isBeforehand()){
			$$(obj.initForm.elements['multiple']).addEvents({
				'blur' : function(){
					this.className='header_searchinput';
					obj.chkMultiple(this);
				},
				'focus' : function(){
					this.className='header_searchclick';
				},
				'keyup' : function(){
					obj.updateBetCost();
				}
			});
		}
	},
	
	/**
	 * 切换上传文件
	 */
	chgUploadFile : function (el){
		var uploadFile = el.value;
		if(uploadFile != ''){
			var arr = uploadFile.split('.');
			if(arr.length !=2){
				window.alert('只允许上传txt类型的文件！');
				return;
			}
			if(arr[1].toLowerCase() != 'txt'){
				window.alert('只允许上传txt类型的文件！');
				return;
			}
			this.initForm.getElement('input[_name=submit_calUploadFileMoney]').disabled = false;
			this.countUploadFileMoney();
		}else{
			this.updateBetUnits(0);
		}
	},
	
	/**
	 * 计算上传文件的注数、金额
	 */
	countUploadFileMoney : function (){
		var uploadFileEle = this.initForm.elements["file"];
		
		var alias = this;
		
		var fn = function(){
			var formActionUrl = alias.initForm.action;
			var schemeSubmit = alias.initForm.getElement('input[_name=input_scheme_submit]');
			var calcSubmit = alias.initForm.getElement('input[_name=submit_calUploadFileMoney]');
			var spanObj = alias.initForm.getElement('span[_name=span_calUploadFileMoney]');
			
			var uploadOptions = {
				onRequest : function(){
					schemeSubmit.disabled = true;
					calcSubmit.style.display = 'none';
					spanObj.style.display = '';
					uploadFileEle.readOnly = true;
					alias.initForm.action = formActionUrl.replace(/![a-zA-Z]+./ig,'!calcSingleBetUnits.');
				},
				onSuccess : function(responseText, responseXML){
					responseText = responseText.replace(/^(<pre[^>]*>\{)(.*)(\}<\/pre>)$/,'{$2}');// 针对chrome谷歌浏览器
					if(isJsonString(responseText)){
			    		var jsonObj = JSON.decode(responseText);
			    		if(jsonObj.success == true){
			    			alias.updateBetUnits(jsonObj.betUnits);
			    		}else{
			    			window.alert(jsonObj.msg);
			    			alias.updateBetUnits(0);
			    		}
			    	}else{
			    		window.alert(responseText);
			    		alias.updateBetUnits(0);
			    	}
				},
				onFailure : function(instance){
					window.alert('计算注数失败！');
					alias.updateBetUnits(0);
				},
				onComplete : function(){
					alias.initForm.action = formActionUrl;
					schemeSubmit.disabled = false;
					calcSubmit.style.display = '';
					spanObj.style.display = 'none';
					uploadFileEle.readOnly = false;
				}
			};
			
			alias.initForm.formUpload(uploadOptions);
		};
		
		LoingDialog.show({
			el : uploadFileEle,
			method : fn
		});
	},
	
	/**
	 * 切换购买方式
	 */
	chgSaleType: function (el,event){
       this.stChange(el,event);
	},
	
	/**
	 * 切换购买方式
	 */
	stChange: function (el,event){
		var arr = this.initForm.elements['saleType'];
		if(!arr.length) arr = [arr];
		
		// 更变对应label的颜色
		var tempObj;
		for(var i=0,len=arr.length;i<len;i++){
			tempObj = this.initForm.getElement('label[for='+arr[i].id+']');
			tempObj.className = (el.id == arr[i].id)?'char12redbold':'';
		}
		
		var isShare = this.initForm.getElement('input[name="saleType"][value="SHARE"]').checked;
		var memberOpenEl = document.getElementById('span_secretType_MemberOpen');
		if(isShare == false){
			var memberSecretTypeEl = this.initForm.getElement('input[name="secretType"][value="MemberOpen"]');
			if(memberSecretTypeEl.checked){
				var openSecretTypeEl = this.initForm.getElement('input[name="secretType"][value="Open"]');
				openSecretTypeEl.fireEvent('click');
				openSecretTypeEl.checked=true;
				var lableOpenSecretType = this.initForm.getElement('label[for="secretType_0"]');
				if(lableOpenSecretType != null){
					lableOpenSecretType.className ="font14char redboldchar";
				}
			}
			memberOpenEl.style.display = 'none';
			var lableForSecretType = this.initForm.getElement('label[for="secretType_1"]');
			if(lableForSecretType != null){
				lableForSecretType.className ="";
			}
		}else{
			memberOpenEl.style.display = '';
		}
		
		var friendIds = this.initForm.elements['friendIds'];
		if(el.value == this.saleTypes.share && friendIds.disabled == true){
			friendIds.disabled = false;
			this.chgShow(this.trs[this.saleTypes.self],false);
			this.chgShow(this.trs[this.saleTypes.share],true);
			
			this.calInvestment();
		} else if(el.value == this.saleTypes.self && friendIds.disabled == false){
			friendIds.disabled = true;
			this.chgShow(this.trs[this.saleTypes.share],false);
			this.chgShow(this.trs[this.saleTypes.self],true);
			
			if(!this.isBeforehand()){
				//切换为不追号
				tempObj = this.initForm.getElement('input[name=chase][value=false]');
				if(tempObj != null){
					tempObj.checked = true;
					this.chgChase(tempObj);
				}
			}
		}
	},
	
	/**
	 * 切换可否参与类型
	 */
	chgAllowJoinType: function (el){
		var spanObj = this.initForm.getElement('span[_name=span_schemeJoinPwd]');
		if(spanObj != null){
			var schemeJoinPwd = this.initForm.elements["schemeJoinPwd"];
			schemeJoinPwd.value = "";
			if(el.value == "PassworldAllow"){
				spanObj.style.display = "";
				this.initForm.elements["schemeJoinPwd"].disabled = false;
				schemeJoinPwd.focus();
			}else{
				spanObj.style.display = "none";
				this.initForm.elements["schemeJoinPwd"].disabled = true;
			}
		}
	},
	
	/**
	 * 切换保密类型
	 */
	chgSecretType: function (el){
		var arr = this.initForm.elements['secretType'];
		if(!arr.length) arr = [arr];
		
		var tempObj;
		for(var i=0,len=arr.length;i<len;i++){
			tempObj = this.initForm.getElement('label[for='+arr[i].id+']');
			tempObj.className = (el.id == arr[i].id)?'char12redbold':'';
		}
	},
	
	/**
	 * 切换追号
	 */
	chgChase: function (el){
		var arr = this.initForm.elements['chase'];
		if(!arr.length) arr = [arr];
		
		var tempObj;
		for(var i=0,len=arr.length;i<len;i++){
			tempObj = this.initForm.getElement('label[for='+arr[i].id+']');
			tempObj.className = (el.id == arr[i].id)?'char12redbold':'';
		}
		
		var isChare = el.value == 'true';
		this.chgShow(this.trs['chase'],isChare);
		
		tempObj = this.initForm.getElement('ul[_name=ul_chaseDetail]');
		tempObj.getChildren().destroy();
		
		tempObj = this.initForm.getElement('tr[_name=tr_chaseDetail]');
		tempObj.style.display = isChare?'':'none';
		
		tempObj = this.initForm.getElement('tr[_name=tr_chaseWonStop]');
		tempObj.style.display = isChare?'':'none';
		
		if(isChare == true){
			tempObj = this.initForm.getElement('input[_name=select_chaseIssueNums]');
			tempObj.value = 10;
			this.chgChaseIssueNums(tempObj);
		}
	},
	
	/**
	 * 切换追号期数
	 */
	chgChaseIssueNums: function (el){
		var multiple = this.getMultiple();//倍数
		if(multiple <= 0) multiple = 1;
		
		var betCost = this.initForm.elements['betCost'].value;//方案金额
		if(!/^\d/.test(betCost) || betCost <= 0){
			betCost = 0;
		}
		
		var chaseIsseuNums = el.value;//追号期数
		
		var html = '';
		var checkboxId;
		var group;
		for(var i=0;i<chaseIsseuNums;i++){
			checkboxId = this.initForm.id+'__chaseIsseuNums_'+i;
			group = 'chase_multiple_'+i;
			html += '<li style="list-style-type:none;width:155px">';
			html += '<label for="'+checkboxId+'">';
			if(i<9) html += '0';
			html += (i+1)+' </label><input _group="'+group+'" id="'+checkboxId+'" _name="checkbox_chaseIsseuNums" name="checkbox_chaseIsseuNums" type="checkbox" checked="checked" />&nbsp;'
			+ '<input _group="'+group+'" _name="chaseMultiples" name="chaseMultiples['+i+']" value="'+multiple+'" type="text" class="kunaggrayb1" onkeydown="number_check(this,event)" maxlength="4" style="ime-mode:disabled;width:30px;text-align:right;" oncontextmenu="return false;" autocomplete="off" />&nbsp;倍'
			+ '&nbsp;<span class="char12redbold">￥<span _group="'+group+'" _name="span_chase_betCost">'+betCost+'</span></span>元';
			html += '</li>';
		}
		var tempObj = this.initForm.getElement('ul[_name=ul_chaseDetail]');
		tempObj.getChildren().destroy();
		tempObj.innerHTML = html;
		
		var alias = this;
		tempObj.getElements('input[_name=checkbox_chaseIsseuNums]').addEvents({
		    'click': function(e){
		    	var group = this.get('_group');
		    	var arr1 = group.split('_');
		    	if(parseInt(arr1[arr1.length-1]) == 0){
		    		// 追号的第一期不能取消
		    		new Event(e).stop();
		    		return ;
		    	}
		    	tempObj.getElement('input[_group='+group+'][_name=chaseMultiples]').disabled = !this.checked;
		    	
		    	var cost = parseInt(tempObj.getElement('span[_group='+group+'][_name=span_chase_betCost]').innerHTML);
		    	var countNums = parseInt(alias.initForm.elements['chaseIssueNums'].value);
				var totalCost = parseInt(alias.initForm.elements['chaseTotalCost'].value);
				
				if(this.checked){
		    		countNums++;
		    		totalCost += cost;
		    	}else{
		    		countNums--;
		    		totalCost -= cost;
		    	}
		    	
		    	alias.updateChaseMsg(countNums,totalCost);
		    }
		});
		
		tempObj.getElements('input[_name=chaseMultiples]').addEvents({
		    'keyup': function(){
		    	alias.chgChaseMultiple(this);
		    },
		    'blur': function(){
		    	this.className='header_searchinput';
		    	if(this.value <= 0){
		    		this.value=1;
		    		alias.updateChase();
		    	}
		    },
		    'focus': function(){
		    	this.className='header_searchclick';
		    }
		});
		
		this.updateChase();
	},
	
	chgChaseMultiple : function(el){
    	var multiple = this.getMultiple();//倍数
		if(multiple <= 0) multiple = 1;
		var betUnits = this.initForm.elements['betUnits'].value;//方案注数
		if(!/^\d/.test(betUnits) || betUnits <= 0){
			betUnits = 0;
		}
		var betCostPerMul = betUnits * this.betMoney;//单倍金额
		
    	var group = el.get('_group');
    	var arr1 = group.split('_');
    	var index = parseInt(arr1[arr1.length-1]);
    	
    	if(index == 0 && el.value != multiple){
   			// 第一个追号期的倍数改变时，同时改变当前方案的倍数
   			this.initForm.elements["multiple"].value = el.value;
			this.updateBetCost();
    	}
    	
    	var betCostObj = this.initForm.getElement('span[_group='+group+'][_name=span_chase_betCost]');
    	var cost1 = parseInt(betCostObj.innerHTML);
    	var cost2 = el.value * betCostPerMul;
		var totalCost = parseInt(this.initForm.elements['chaseTotalCost'].value);
		totalCost += cost2 - cost1;
		
    	betCostObj.innerHTML = cost2;
		this.updateChaseTotalCost(totalCost);
    },
	
	/**
	 * 更新追号信息
	 */
	updateChase : function (){
		var multiple = this.getMultiple();//倍数
		if(multiple <= 0) multiple = 1;
		
		var betUnits = this.initForm.elements['betUnits'].value;//方案注数
		if(!/^\d/.test(betUnits) || betUnits <= 0){
			betUnits = 0;
		}
		
		var betCostPerMul = betUnits * this.betMoney;//单倍金额
		
		var tempObj = this.initForm.getElement('ul[_name=ul_chaseDetail]');
		var arr = tempObj.getElements('input[_name=checkbox_chaseIsseuNums]');
		
		var isChecked;
		var chaseMultipleObj;
		var betCostObj;
		var cost;
		var countNums = 0;
		var totalCost = 0;
		var group;
		for(var i=0,len=arr.length;i<len;i++){
			isChecked = arr[i].checked;
			group = arr[i].get('_group');
			chaseMultipleObj = tempObj.getElement('input[_group='+group+'][_name=chaseMultiples]');
			betCostObj = tempObj.getElement('span[_group='+group+'][_name=span_chase_betCost]');
			cost = chaseMultipleObj.value * betCostPerMul;
			betCostObj.innerHTML = cost;
			if(isChecked){
				countNums++;
				totalCost += cost;
			}
		}
		
		this.updateChaseMsg(countNums,totalCost);
	},
	
	updateChaseMsg : function(countNums,totalCost){
		this.initForm.elements['chaseIssueNums'].value = countNums;
		this.initForm.getElement('span[_name=span_chaseIssueNums]').innerHTML = countNums;
		this.updateChaseTotalCost(totalCost);
	},
	
	updateChaseTotalCost : function(totalCost){
		this.initForm.elements['chaseTotalCost'].value = totalCost;
		this.initForm.getElement('span[_name=span_chaseTotalCost]').innerHTML = totalCost;
	},
	
	/**
	 * 检查倍数
	 */
	chkMultiple : function (obj){
		var isFirefox = Browser.Engine.gecko;
		if(obj.value == ""){
			if(isFirefox){ 
				obj.value = 1;
			}else{
				this.updateInputValue(false,obj);
				obj.focus();
			}
		}else if(!/^\d/.test(obj.value)){
			if(isFirefox){
				obj.value = 1;
			}else{
				window.alert("倍数必须为数字！");
				obj.focus();
				obj.select();
			}
		}else if(obj.value <= 0){
			if(isFirefox){
				obj.value = 1;
			}else{
				window.alert("倍数必须大于0！");
				this.updateInputValue(false,obj);
				obj.focus();
				obj.select();
			}
		}
		this.updateBetCost();
	},
	
	/**
	 * 更新赔投数
	 * 由子类覆盖
	 */
	updateInputValue : function (isFirefox,obj){
			obj.value = 1;
	},
	
	/**
	 * @return 倍数
	 */
	getMultiple : function (){
		var multiple = 0;
		var multipleEle = this.initForm.elements["multiple"];
		if(multipleEle && /^\d/.test(multipleEle.value) && multipleEle.value > 0){
			multiple = this.initForm.elements["multiple"].value;
		}
		return multiple;
	},
	
	/**
	 * @return 是否为复式
	 */
	isPoly : function (){
		var arr = this.initForm.elements["poly"];
		if(arr.length){
			var tempObj;
			for(var i=0,len=arr.length;i<len;i++){
				tempObj = arr[i];
				if(tempObj.checked){
					this.initForm.getElement('label[for='+arr[i].id+']').className='char12redbold';
					return tempObj.value == 'true';
				}
			}
			return false;
		}else{
			return arr.value == 'true';
		}
	},
	
	/**
	 * @return 是否文件上传方式
	 */
	isUploadFile : function (){
		return (this.initForm.elements['file'] && this.initForm.elements['file'].disabled == false);
	},
	
	/**
	 * @return 是否提前发起
	 */
	isBeforehand : function (){
		var el = $(this.initForm.elements["beforehand"]);
		if(el){
			if(el.get('type') == 'checkbox'){
				return el.value == "true" && el.checked;
			}else{
				return el.value == "true";
			}
		}
		return false;
	},
	
	/**
	 * 更新注数及相关信息
	 * @param betUnits　注数
	 */
	updateBetUnits : function (betUnits){
		this.initForm.elements["betUnits"].value = betUnits;
		
		this.initForm.getElements('span[_name$=scheme_betUnits]').each(function(item){
			item.innerHTML = betUnits;
		});
		
		if(betUnits==0){
		 this.updateBetUnitsLabel();
		}
		this.updateBetCost();
		if(this.isChase()){
			this.updateChase();
		}
	},
	
	/**
	 * 更变对应label的颜色
	 * 由子类覆盖
	 */
	updateBetUnitsLabel : function (){
	},

	isChase : function (){
		if(this.isBeforehand())	return false;
		
		var arr = this.initForm.elements["chase"];
		if(arr == null) return false;
		if(arr.length){
			var tempObj;
			for(var i=0,len=arr.length;i<len;i++){
				tempObj = arr[i];
				if(tempObj.checked){
					return tempObj.value == 'true';
				}
			}
			return false;
		}else{
			return arr.value == 'true';
		}
	},
	
	/**
	 * 更新方案金额及相关信息
	 */
	updateBetCost : function (){
		var multiple = this.getMultiple();
		
		var betUnits = this.initForm.elements["betUnits"].value;
		if(betUnits == "" || !/^\d/.test(betUnits)){
			betUnits = 0;
		}
		
		var betCost = betUnits * multiple * this.betMoney;
		this.initForm.elements["betCost"].value = betCost;

		this.initForm.getElements('span[_name$=scheme_betCost]').each(function(item){
			item.innerHTML = betCost;
		});
		
		if(this.isChase()){
			tempObj = this.initForm.elements['chaseMultiples[0]'];
			if(tempObj.value != multiple){
				tempObj.value = multiple;
				this.chgChaseMultiple(tempObj);
			}
		}
		
		this.calInvestment();
	},
	
	/**
	 * 计算投资
	 */
	calInvestment : function (){
		var betCost = this.initForm.elements['betCost'].value;
		if(!/^\d/.test(betCost)){
			betCost = 0;
			this.initForm.elements['betCost'].value = betCost;
		}
		
		var obj;
		if(betCost > 0){
			//认购
			obj = this.initForm.elements['joinCost'];
			var joinCost = obj.value; 
			if(!this.costRegex.test(joinCost)){
				joinCost = 0;
				obj.value = "";
			}else{
				joinCost = new Number(joinCost).round(2);//保留两位小数
			}
			var investment_percent = ((joinCost*100/betCost)).toFixed(2);
			this.initForm.getElement('span[_name=investment_percent]').innerHTML = investment_percent;
			
			//保底
			obj = this.initForm.elements['baodiCost'];
			var baodiCost = this.initForm.elements['baodiCost'].value; 
			if(!this.costRegex.test(baodiCost)){
				baodiCost = 0;
				this.initForm.elements['baodiCost'].value = '';
			}else {
				baodiCost = new Number(baodiCost).round(2);//保留两位小数
			}
			var baodi_percent = ((baodiCost*100/betCost)).toFixed(2);
			this.initForm.getElement('span[_name=baodi_percent]').innerHTML = baodi_percent;
		}else{
			this.initForm.getElement('span[_name=investment_percent]').innerHTML = '0';
			this.initForm.getElement('span[_name=baodi_percent]').innerHTML = '0';
		}
	},
    
    checkSchemeFormBefore: function(){
    	// 子类重载实现，增加其他验证
    	return true;
    },
	
	/**
	 * 验证投注表单
	 * @return　返还验证结果
	 */
	checkSchemeForm : function (){
		if(!this.checkSchemeFormBefore()){
			return false;
		}
		
		var betCostObj = this.initForm.elements["betCost"];
		var betCost = betCostObj.value;
		if(!/^\d/.test(betCost)){
			betCost = 0;
		}else{
			betCost = parseInt(betCost);
		}
		var tempObj;
		
		var beforehand = this.isBeforehand();
		if(beforehand){
			// 验证方案金额
			if(betCost <= 0){
				window.alert("方案金额必须大于零！");
				//betCostObj.focus();
				return false;
			}
			if(betCost % this.betMoney != 0){
				window.alert('一注彩票'+this.betMoney+'元，方案金额必须是'+this.betMoney+'的倍数！');
				//betCostObj.focus();
				return false;
			}
		}else{
			// 验证倍数
			var multiple = this.getMultiple();
			if(multiple <= 0){
				window.alert("倍数必须大于0！");
				var el = this.initForm.elements["multiple"];
				if(el) el.focus();
				return false;
			}
			
			var poly = this.isPoly();
			if(poly){//复式
				
			}else{//单式
				tempObj = this.initForm.elements["singleContent"];
				if(tempObj && tempObj.disabled == false){
					if(typeof this.checkSingleContent != 'function'){
						window.alert("检查单式内容的函数未定义！");
						return false;
					}
					if(!this.checkSingleContent()){//检查单式方案内容
						window.alert("投注内容格式不正确！");
						return false;
					}
				}
			}
		
			// 验证投注注数
			var betUnits = this.initForm.elements["betUnits"].value;
			if(!/^\d/.test(betUnits)){
				betUnits = 0;
				this.initForm.elements["betUnits"].value = 0;
			}
			if(betUnits <= 0){
				window.alert("注数必须大于零！");
				return false;
			}
			var scheme_betUnits = this.initForm.getElement('span[_name=scheme_betUnits]').innerHTML;
			if(scheme_betUnits != betUnits){
				window.alert("显示的注数与计算的不一致！");
				return false;
			}
			
			// 验证方案金额
			if(betCost <= 0){
				window.alert("方案金额必须大于零！");
				return false;
			}
			if(betCost != this.betMoney * multiple * betUnits){
				window.alert("方案金额不正确！");
				return false;
			}
			var scheme_betCost = this.initForm.getElement('span[_name=scheme_betCost]').innerHTML;
			if(scheme_betCost != betCost){
				window.alert("显示的方案金额与计算的不一致！");
				return false;
			}
		}
		
		var saleType = getRadioVal(this.initForm,"saleType");
		if(saleType == this.saleTypes.share){	// ~合买相关验证 ========================================
			// 验证认购
			var joinCostObj = this.initForm.elements["joinCost"];
			var joinCost = joinCostObj.value; 
			if(joinCost == ""){
				window.alert("认购金额不能为空！");
				joinCostObj.focus();
				return false;
			}else if(!this.costRegex.test(joinCost)){
				window.alert("认购金额必须为数字，并且最多允许两位小数！");
				joinCostObj.focus();
				return false;
			}else{
				joinCost = new Number(joinCost).round(2);//保留两位小数
			}
			if(joinCost > betCost){
				window.alert("认购金额不能大于方案金额！");
				joinCostObj.focus();
				return false;
			}
			
			tempObj = this.initForm.elements["minJoinCost"];
			var minJoinCost = tempObj.value;
			if(minJoinCost != ""){
				if(!this.costRegex.test(minJoinCost)){
					window.alert("最低认购金额必须为数字，并且最多允许两位小数！");
					tempObj.focus();
					return false;
				}
				minJoinCost = new Number(minJoinCost).round(2);//保留两位小数
				if(minJoinCost > betCost){
					window.alert("最低认购金额不能大于方案金额！");
					tempObj.focus();
					return false;
				}
				if(joinCost < minJoinCost){
					window.alert('认购金额必须大于或等于最低认购金额，即' + minJoinCost + '元！');
					joinCostObj.focus();
					return false;
				}
				var remainCost = betCost - joinCost;
				if (minJoinCost > remainCost) {
					window.alert('您设置的最低认购金额为' + minJoinCost+ '元，而剩余可认购金额只有' + remainCost + '元，请重新设置！');
					tempObj.value = '';
					joinCostObj.value = '';
					return false;
				}
			}
			
			var organigerMinJoinCost = betCost * 0.01;
			if(joinCost < organigerMinJoinCost){
				window.alert("发起人至少要认购1%（即" + organigerMinJoinCost + "元或以上）!");
				tempObj.focus();
				return false;
			}
			
			// 验证保底
			tempObj = this.initForm.elements["baodiCost"];
			var baodiCost = tempObj.value; 
			if(baodiCost == ""){
				baodiCost = 0;
			} else if(!/^\d/.test(baodiCost)){
				window.alert("保底金额必须为数字，并且最多允许两位小数！");
				tempObj.focus();
				return false;
			} else {
				baodiCost = new Number(baodiCost).round(2);//保留两位小数
			}
			if(baodiCost > betCost){
				window.alert("保底金额不能大于方案金额！");
				tempObj.focus();
				return false;
			}
			if(baodiCost > 0 && baodiCost < minJoinCost){
				window.alert('保底金额必须大于或等于最低认购金额，即' + minJoinCost + '元！');
				joinCostObj.focus();
				return false;
			}
			if(baodiCost + joinCost > betCost){
				window.alert("认购金额和保底金额的总和不能大于方案金额！");
				tempObj.focus();
				return false;
			}
			
			tempObj = this.initForm.elements["allowJoinType"];
			if(!tempObj.disabled && tempObj.value == 'PassworldAllow'){
				tempObj = this.initForm.elements["schemeJoinPwd"];
				if(tempObj.value == ''){
					window.alert("加入密码不能为空！");
					tempObj.focus();
					return false;
				}
				var pwdLen = tempObj.value.length;
				if(pwdLen < 6 || pwdLen > 20){
					window.alert("加入密码长度不能小于6位或大于20位！");
					tempObj.focus();
					tempObj.select();
					return false;
				}
			}
		}else{//自购
			if(this.isChase()){// 追号
				var chaseIssueNums = this.initForm.elements['chaseIssueNums'].value;
				var chaseTotalCost = this.initForm.elements['chaseTotalCost'].value;
				if(chaseIssueNums <= 1){
					window.alert("追号期数必须大于或等于2！");
					return false;
				}
				chaseTotalCost = parseInt(chaseTotalCost);
				if(chaseTotalCost <= betCost){
					window.alert("追号的总金额小于或等于方案金额，数据错误！");
					return false;
				}
			}
		}
		
		// 验证是否同意《盈彩用户合买代购协议》
		if(this.initForm.elements["protocol"].checked != true){
			window.alert("您没有同意《盈彩用户合买代购协议》,不能发起方案！");
			return false;
		}
		
		return true;
	},
	
	/**
	 * @return 投注前确认信息
	 */
	getConfirmMsg : function (){
		var lotteryTypeName = this.isPoly()?'复式':'单式';
		
		var saleType = getRadioVal(this.initForm,"saleType");
		var saleTypeName;
		if(saleType == this.saleTypes.share){
			saleTypeName = '合买';
		}else if(saleType == this.saleTypes.self){
			saleTypeName = '自购';
		}else{
			return null;
		}
		
		var betCost = this.initForm.elements["betCost"].value;
		betCost = (/^\d/.test(betCost))?parseInt(betCost):0;
		var userTotalCost;
		
		var msg = '彩    种：' + this.initForm.getElement('span[_name=platform_lotteryName]').innerHTML
			+ '\r\n期    号：' + this.initForm.elements['issueNumber'].value + '期'
			+ '\r\n方案类型：' + lotteryTypeName
			+ '\r\n购买方式：' + saleTypeName
			+ '\r\n方案金额：' + betCost + '元';
		
		if(!this.isBeforehand()){
			msg += '（'+ this.initForm.elements["multiple"].value + '倍投，' + this.initForm.elements["betUnits"].value + '注）';
		}
		
		if(saleType == this.saleTypes.share){
			var baodiCost = new Number(this.initForm.elements["baodiCost"].value).round(2);
			var joinCost = new Number(this.initForm.elements["joinCost"].value).round(2);
			userTotalCost = joinCost+baodiCost;
			
			msg += '\r\n\r\n您认购了'+joinCost+'元，占股份'+ this.initForm.getElement('span[_name=investment_percent]').innerHTML +'%';
			if(baodiCost > 0){
				msg += '\r\n您保底了'+this.initForm.elements["baodiCost"].value+'元，占股份'+ this.initForm.getElement('span[_name=baodi_percent]').innerHTML +'%';
			}
		}else if(this.isChase()){
			var chaseIssueNums = this.initForm.elements['chaseIssueNums'].value;
			var chaseTotalCost = this.initForm.elements['chaseTotalCost'].value;
			msg += '\r\n\r\n共追号 ' + chaseIssueNums + ' 期，总金额 ' + chaseTotalCost + ' 元';
			userTotalCost = chaseTotalCost;
		}else {
			userTotalCost = betCost;
		}
		
		msg += '\r\n\r\n本次提交将扣除您 ' +userTotalCost + ' 元。您是否确认提交？';
		
		return msg;
	},
	
	chgDisabled : function (parentObj,tagNameArr,able){
		if(parentObj != null && tagNameArr != null && able != null){
			var tempArr;
			for(var i=0,len=tagNameArr.length;i<len;i++){
				tempArr = parentObj.getElementsByTagName(tagNameArr[i]);
				if(tempArr != null){
					if(!tempArr.length){
						tempArr = [tempArr];
					}
					var tempObj;
					for(var j=0;j<tempArr.length;j++){
						tempObj = tempArr[j];
						if(tagNameArr[i] == 'select' && tempObj.style){
							tempObj.style.display = able?'':'none';
						}
						tempObj.disabled = able?false:true;
					}
				}
			}
		}
	},
	
	chgShow : function (arr,show){
		if(arr != null && show != null){
			var tempTrObj;
			var tempArr;
			for(var i=0,len=arr.length;i<len;i++){
				tempTrObj = this.initForm.getElement('tr[_name='+arr[i]+']');
				if(tempTrObj){
					tempTrObj.style.display = show?'':'none';
					this.chgDisabled(tempTrObj,['input','select','textarea'],show);
				}
			}
		}
	},
	
	checkBetCost : function (el){
		var str = el.value.trim();
		
		if(str == '') return ;
		
		if(!/^\d/.test(str)){
			window.alert('方案金额必须是数字！');
			el.focus();
			el.select();
			return false;
		}
		
		var betCost = parseInt(str);
		if(betCost % this.betMoney != 0){
			window.alert('一注彩票'+this.betMoney+'元，方案金额必须是'+this.betMoney+'的倍数！');
			//el.focus();
			return false;	
		}
	}
});


