﻿//===============系统扩展函数=========================================
function $(id){return document.getElementById(id);}
//定义StringBuilder类
var StringBuilder = function()
{
    this._sArray = new Array();
}
StringBuilder.prototype.append = function(str)
{
	this._sArray.push(str);
}
StringBuilder.prototype.toString = function()
{
	return this._sArray.join('');
}
//定义String的trim方法
String.prototype.trim = function()
{
    return this.replace(/(^\s*)|(\s*$)/g, "");
}

//--------------------------------------------
//VML画走势图的相关方法
//HTML页面的下面这行不能要：
//<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
//
//--------------------------------------------
document.write("<HTML xmlns:v><STYLE>v\:*{behavior:url(#default#VML);}</STYLE>");
document.write("<div id='divVMLLabel'></div>");
//获取HTML对象的中心位置，返回字符：x,y
function getObjCenterPosition(element)
{
    if(arguments.length != 1 || element == null){return null;}
    var offsetTop = element.offsetTop;
    var offsetLeft = element.offsetLeft;
    var offsetWidth = element.offsetWidth;
    var offsetHeight = element.offsetHeight;
    while( element = element.offsetParent) 
    {
        offsetTop += element.offsetTop;
        offsetLeft += element.offsetLeft;
    }
    var x = offsetLeft + offsetWidth/2;
    var y = offsetTop + offsetHeight/2;
    return parseInt(x) + "," + parseInt(y);
}

//多条直线画多边形：aryObjIds:html对象IDS
function WriteVMLShape(strObjIds, color, size)
{
    var strColor = color == null ? "#000000" : color;
    var strSize = size == null ? 1 : size;

    var html = "";
    var aryObjIds = strObjIds.split(",");
    var tempDom = document.createDocumentFragment();
    for (var i = 1; i < aryObjIds.length; i++) {
        var objFrom = document.getElementById(aryObjIds[i - 1]);
        var objTo = document.getElementById(aryObjIds[i]);
        var fromX = parseInt(getObjCenterPosition(objFrom).split(",")[0], 10);
        var fromY = parseInt(getObjCenterPosition(objFrom).split(",")[1], 10);
        var toX = parseInt(getObjCenterPosition(objTo).split(",")[0], 10);
        var toY = parseInt(getObjCenterPosition(objTo).split(",")[1], 10);
        var pX = fromX < toX ? fromX : toX;
        var pY = fromY < toY ? fromY : toY;
        if (document.all) {
            html += "<v:line style='z-index:1;position:absolute;left:" + pX + "px;top:" + pY + "px;' from='0,0' to='" + (toX - fromX) + ", " + (toY - fromY) + "' strokecolor='" + strColor + "' strokeweight='" + strSize + "px'/>";
        }
        else {
            var cvs = document.createElement('canvas');
            cvs.style.position = "absolute";
            cvs.style.left = pX + "px";
            cvs.style.top = pY + "px";
            cvs.width = Math.abs(toX - fromX);
            cvs.height = Math.abs(toY - fromY);

            var beginX = fromX < toX ? 0 : cvs.width;
            var beginY = fromY < toY ? 0 : cvs.height;
            cvs.width = cvs.width == 0 ? 1 : cvs.width;
            var FG = cvs.getContext("2d");
            FG.save(); //缓存历史设置
            FG.strokeStyle = strColor;
            FG.lineWidth = strSize;
            FG.globalAlpha = 0.4; //透明度；	
            FG.beginPath();
            FG.moveTo(beginX, beginY);
            FG.lineTo(cvs.width - beginX, cvs.height-beginY);
            FG.closePath();
            FG.stroke();
            FG.restore();
            
            cvs.style.width = cvs.width + "px";
            cvs.style.height = cvs.height + "px";
            tempDom.appendChild(cvs);
        }
    }
    if (document.all) {
        document.getElementById("divVMLLabel").innerHTML += html;
    } else {
        document.body.appendChild(tempDom);
    }
}

function DrawRate(max, iValue)
{

    var rate = parseInt(iValue*100/max, 10);
     html = "<table cellpadding='0' cellspacing='0' style='height:100px;'>";
//     html += "<tr><td style='height:"+(100-rate)+"px;width:9px;'>&nbsp;</td></tr>";
     html += "<tr><td style='width:9px;vertical-align:bottom' title='" + iValue + "'><img src='../images/t2.gif' style='height:"+(rate+1)+"px;width:9px;'></td></tr>";
    html += "</table>";   
    return html; 
}
//计算一组数字的AC值,用半角逗号分隔
function GetAC(strValues)
{
    var aryValues = strValues.split(",");
    var strDiffValues = ",";
    for(var i=0;i<aryValues.length;i++)
    {
        aryValues[i] = parseInt(aryValues[i], 10);
    }
    
    for(var i=0;i<aryValues.length-1;i++)
    {
        for(var j=0;j<aryValues.length;j++)
        {
            if(aryValues[i] != aryValues[j])
            {
                var iDiffValue = Math.abs(aryValues[i] - aryValues[j]);
                var strDiffValue = "," + iDiffValue + ",";
                if(strDiffValues.indexOf(strDiffValue)>=0){}
                else
                {
                    strDiffValues += iDiffValue + ",";
                }
            }
        }
    }
    var aryDiffValues = strDiffValues.split(",");  
    return aryDiffValues.length - 2  - aryValues.length + 1;
}

function GetBigSmallStatus(strValues)
{
    var aryValues = strValues.split(",");
    var strReturn="";
    var bigCount=0;
    var smallCount=0;
    for(var i=0;i<aryValues.length;i++)
    {
        if(strReturn=="")
        {
            strReturn += parseInt(aryValues[i],10)>4?"大":"小";
        }
        else
        {
            strReturn += parseInt(aryValues[i],10)>4?",大":",小";
        }
        bigCount+= parseInt(aryValues[i],10)>4?1:0;
        smallCount+=parseInt(aryValues[i],10)>4?0:1;
    }
    return strReturn+"="+bigCount+"："+smallCount ;
}

//是否质数
function IsPrimeNumber(number)
{
    var aryPrimeNumber = new Array(1, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31);
    var blIsPrimeNumber = false;
    var iNumber = parseInt(number, 10);
    for(var i=0;i<aryPrimeNumber.length;i++)
    {
        if(iNumber==aryPrimeNumber[i]){blIsPrimeNumber=true;break;}
    }
    return blIsPrimeNumber;
}

//获取质合形态
function GetPrimeName(anteCode)
{
    var aryRedBalls = anteCode.split("#")[0].split(",");
    var strName = "";
    var strNotPrimeNumber = "";
    for(var i=0;i<aryRedBalls.length;i++)
    {
        if(IsPrimeNumber(aryRedBalls[i]))
        {
            strName += "质";
        }
        else
        {
           strName += "合";
        }        
    }
    return strName;
}

//判断新旧跳状态:新=1,旧=2,跳=3
//number=单个号码
//lastCode=上期开奖号码
//lastLastCode=上上期开奖号码
function GetXJTStatus(number, lastCode, lastLastCode)
{
    var aryLastRed = lastCode.split("#")[0].split(",");
    var aryLastLastRed = lastLastCode.split("#")[0].split(",");
    var iNumber = parseInt(number, 10);
    var strRet = "";
    for(var i=0;i<aryLastRed.length;i++)
    {
        if(parseInt(aryLastRed[i], 10)==iNumber){strRet="旧";break;}
    }
    if(strRet=="")
    {
        for(var i=0;i<aryLastLastRed.length;i++)
        {
            if(parseInt(aryLastLastRed[i], 10)==iNumber){strRet="跳";break;}
        }        
    }
    if(strRet==""){strRet="新";}
    return strRet;
}

//判断旧斜孤状态:新=1,旧=2,跳=3
//number=单个号码
//lastCode=上期开奖号码
//lastLastCode=上上期开奖号码
function GetJXGStatus(number, lastCode)
{
    var aryLastRed = lastCode.split("#")[0].split(",");
    var iNumber = parseInt(number, 10);
    var strRet = "";
    for(var i=0;i<aryLastRed.length;i++)
    {
        if(parseInt(aryLastRed[i], 10)==iNumber){strRet="旧";break;}
    }
    if(strRet=="")
    {
        for(var i=0;i<aryLastRed.length;i++)
        {
            if((iNumber+1)==parseInt(aryLastRed[i],10))
            {
                for(var j=0;j<aryLastRed.length;j++)
                {
                    if(i!=j && (iNumber-1)==parseInt(aryLastRed[j],10)){strRet="左右";break;}
                }
            }
        }        
    }
    if(strRet=="")
    {
        for(var i=0;i<aryLastRed.length;i++)
        {
            if(parseInt(aryLastRed[i], 10)==(iNumber+1)){strRet="左";break;}
            if(parseInt(aryLastRed[i], 10)==(iNumber-1)){strRet="右";break;}
        }        
    }
    if(strRet==""){strRet="孤";}
    return strRet;
}

function GetLianHaoCount(strValues)
{
    var count=0;
    var aryValues = strValues.split(",");
    aryValues.sort(function(a,b){return a-b;});
    
    var array=new Array();
    for(var i=0;i<aryValues.length-1;i++)
    {
        if(parseInt(aryValues[i],10)+1==parseInt(aryValues[i+1],10))
        {
            array.push(aryValues[i]);
            array.push(aryValues[i+1]);
        }
    }
    for(var i=array.length-1;i>=1;i--)
    { 
           if(parseInt(array[i-1],10) == parseInt(array[i],10)) 
           {            
                array.splice(i,1);//splice（）方法的应用      
           }   
    }
    
    for(var i=0;i<array.length;i++)
    {
        if(parseInt(array[i],10)+1==parseInt(array[i+1],10) && parseInt(array[i+1],10)+1!=parseInt(array[i+2],10))
            count++;
    }
    return new Array(array,count);
}

function GetLianHaoStatus(strValues)
{
    var str="";
    var aryValues = strValues.split(",");
    aryValues.sort(function(a,b){return a-b;});
    
    for(var i =0;i<aryValues.length;i++)
    {
        if(i==0)
        {
            if(parseInt(aryValues[i],10)+1==parseInt(aryValues[i+1],10))
            {
                str+="连";
            }else
            {
                str+="Ｏ";
            }
        }
        else if(i==aryValues.length-1)
        {
            if(parseInt(aryValues[i],10)-1==parseInt(aryValues[i-1],10))
            {
                str+="连";
            }else
            {
                str+="Ｏ";
            }
        }
        else
        {
            if(parseInt(aryValues[i],10)+1==parseInt(aryValues[i+1],10) || parseInt(aryValues[i],10)-1==parseInt(aryValues[i-1],10))
            {
                str+="连";
            }
            else
            {
                str+="Ｏ";
            }
        }
    }
    
    return str;
}

function GetJianGeCount(strValues)
{
    var count=0;
    var aryValues = strValues.split(",");
    aryValues.sort(function(a,b){return a-b;});
    
    var array=new Array();
    for(var i=0;i<aryValues.length-1;i++)
    {
        if(parseInt(aryValues[i],10)+2==parseInt(aryValues[i+1],10))
        {
            array.push(aryValues[i]);
            array.push(aryValues[i+1]);
        }
    }
    for(var i=array.length-1;i>=1;i--)
    { 
           if(parseInt(array[i-1],10) == parseInt(array[i],10)) 
           {            
                array.splice(i,1);//splice（）方法的应用      
           }   
    }
    
    for(var i=0;i<array.length;i++)
    {
        if(parseInt(array[i],10)+2==parseInt(array[i+1],10) && parseInt(array[i+1],10)+2!=parseInt(array[i+2],10))
            count++;
    }
    return new Array(array,count);
}

function GetJianGeStatus(strValues)
{
    var str="";
    var aryValues = strValues.split(",");
    aryValues.sort(function(a,b){return a-b;});
    
    for(var i =0;i<aryValues.length;i++)
    {
        if(i==0)
        {
            if(parseInt(aryValues[i],10)+2==parseInt(aryValues[i+1],10))
            {
                str+="间";
            }else
            {
                str+="Ｏ";
            }
        }
        else if(i==aryValues.length-1)
        {
            if(parseInt(aryValues[i],10)-2==parseInt(aryValues[i-1],10))
            {
                str+="间";
            }else
            {
                str+="Ｏ";
            }
        }
        else
        {
            if(parseInt(aryValues[i],10)+2==parseInt(aryValues[i+1],10) || parseInt(aryValues[i],10)-2==parseInt(aryValues[i-1],10))
            {
                str+="间";
            }
            else
            {
                str+="Ｏ";
            }
        }
    }
    
    return str;
}
