

//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//
// 乐透型彩票的通用函数
//
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

LotteryClass = function() 
{
    this.value = new Array();
	for(var i=0; i<50; i++) this.value[i] = 0;
}

LotteryClass.prototype = 
{
	// 标记初始化
	Initialize : function(str)
	{
		str = str.replace(/[^\d]/gi, "");
		for(var i=0; i<str.length / 2; i++) {
			this.value[i] = parseInteger(str.substr(i*2,2));
		}
	},
	
	// 和值
    Sum : function(str)
    {
		this.Initialize(str);
		var rsl = 0;
		for(var i=0; i<str.length / 2; i++) {
			rsl += this.value[i];
		}
		return rsl;
    },

	// 奇数
    Odd : function(str)
    {
		this.Initialize(str);
		var rsl = 0;
		for(var i=0; i<str.length / 2; i++) {
			rsl += (this.value[i] % 2);
		}
		return rsl;
    },
	
	// 偶数
	Even : function(str)
	{
		return (str.length / 2) - this.Odd(str);
	},

	// 奇偶形态
    OddStyle : function(str)
    {
		this.Initialize(str);
        var rsl="";
		for(var i=0; i<str.length / 2; i++) {
			rsl += ((this.value[i] % 2)==1) ? "1" : "2";
		}
        return rsl;
    },
	
	// 大数
    Big : function(str)
    {
		this.Initialize(str);
		var rsl = 0;
		for(var i=0; i<str.length / 2; i++) {
			rsl += ((this.value[i]%10)>4) ? 1 : 0;
		}
		return rsl;
    },
	
	// 小数
	Small : function(str)
	{
		return (str.length / 2) - this.Big(str);
	},

	// 大小形态
    BigStyle : function(str)
    {
		this.Initialize(str);
        var rsl="";
		for(var i=0; i<str.length / 2; i++) {
			rsl += ((this.value[i]%10)>4) ? "1" : "2";
		}
        return rsl;
    },
	
	IsPrime : function(v)
	{
		if(v==1 || v==2 || v==3 || v==5 || v==7) return true;
		if(v==11 || v==13 || v==17 || v==19 || v==23) return true;
		if(v==29 || v==31 || v==37 || v==41 || v==43 || v==47) return true;
		return false;
	},

	// 质数
    Prime : function(str)
    {
		this.Initialize(str);
		var rsl = 0;
		for(var i=0; i<str.length / 2; i++) {
			rsl += (this.IsPrime(this.value[i])) ? 1 : 0;
		}
		return rsl;
    },
	
	// 合数
	Combine : function(str)
	{
		return (str.length / 2) - this.Prime(str);
	},

	// 质合形态
    PrimeStyle : function(str)
    {
		this.Initialize(str);
        var rsl="";
		for(var i=0; i<str.length / 2; i++) {
			rsl += (this.IsPrime(this.value[i])) ? "1" : "2";
		}
        return rsl;
    },

	// 跨度
    Distance : function(str)
    {
		var vmin = 99;
		var vmax = 0;
		for(var i=0; i<str.length / 2; i++) {
			if(this.value[i] < vmin) vmin = this.value[i];
			if(this.value[i] > vmax) vmax = this.value[i];
		}
        return vmax-vmin;
    },

	// 覆盖0-9的数字
	Fill : function(str)
	{
		var fAry = new Array();
		for(var i=0; i<10; i++) fAry[i]=0;
		this.Initialize(str);
		for(var i=0; i<str.length / 2; i++) {
			fAry[this.value[i] % 10] += 1;
		}
        var rsl="";
		for(var i=0; i<10; i++) {
			rsl += fAry[i];
		}
        return rsl;
	}
}
