﻿// JScript 文件
//数据更新进度条
//build by ztl.施宗建 2006.9.18
var obj;
document.writeln("<table id=\"chartloading\" style=\"POSITION: absolute;background:white;display:none\"><tr><td style=\"color:green\">数据读取中,请稍候...</td></tr><tr><td><img src=\"/images/loading.gif\"></img></td></tr></table>");
function BeginLoad()//开始等待
{
   var x=0,y=0;
   if (document.all)
   { 
      var tt=event.srcElement;
      if(tt)
      {
        x=event.srcElement.offsetLeft;
        y=event.srcElement.offsetTop;
        while(tt = tt.offsetParent)
        {
           y+=tt.offsetTop;
           x+=tt.offsetLeft;
        }
      }
      if(x> 0 || y>0)
     {
        var rightedge = document.body.clientWidth-x;
        var loading=document.getElementById("chartloading");
        if (rightedge < 214)
        {
           loading.style.left=document.body.scrollLeft + x - 214;
        }
        else
        {
           loading.style.left=x;
        }
        loading.style.top=y+22;
        loading.style.display="";
     }
     status="请稍候,正在数据处理中......";
     //document.body.style.cursor="wait";
   }
}
function EndLoad()//结束等待
{
   status="";
   document.body.style.cursor="default";
   document.getElementById("chartloading").style.display="none";
}
function EndChart()
{
  EndLoad();
  obj.onreadystatechange=null;
}
function changeImg1(f,type,v)//改变图表参数f:对象;type=参数;v参数值
{
  BeginLoad();
  f=getimgobj(f);
  query=f.src.substring(f.src.indexOf("?")+1);
  a_query=query.split("&");
  v_query="";
  for(i=0;i<a_query.length;i++)
  {
     if(v_query!="")
       v_query+="&";
     if(a_query[i].split("=")[0]==type)
     {
        if(a_query[i].split("=")[1]==v)
        {
           EndLoad();
           return false;
        }
        v_query+=type+"="+v;
      }
     else
        v_query+=a_query[i];
  }
  f.src=f.src.substring(0,f.src.indexOf("?"))+"?"+v_query;
  if (document.all)
  {
     f.onreadystatechange=EndChart;
     obj=f;
  }
}

function changeImg2(f,v)//时间增减:f图表对象ID；v增减方向++/--；d月数其中0月度，1季度，2半年，3年度
{
  if(getimgobj(f).src.indexOf("y=")==-1 && getimgobj(f).src.indexOf("m=")==-1)
  {
     if(v=="++")//与年月的方向相反了。
        v="--";
     else
        v="++";
     changeImg4(f,"r",v);//按天数(一般天数为行数rowsindex(r=)代号)
     return;
  }
  BeginLoad();
  f=getimgobj(f);
  query=f.src.substring(f.src.indexOf("?")+1);
  a_query=query.split("&");
  v_query="";
  var d="0";
  var y=2006;
  var m=12;
  for(i=0;i<a_query.length;i++)
  {
     if(a_query[i].substring(0,1)=="y")
     {
        y=parseInt(a_query[i].split("=")[1]);
     }
     if(a_query[i].substring(0,1)=="m")
     {
        m=parseInt(a_query[i].split("=")[1]);
     }
     if(a_query[i].substring(0,1)=="d")
     {
        d=a_query[i].split("=")[1];
        break;
     }
  }
  
  switch(d)
  {
   case "1": //季度
         if(v=="++")
         {
            if(m<=3)
               m=6;
            else if(m<=6)
               m=9;
            else if(m<=9)
               m=12;
            else
            {
               m=3;
               y++;
            }
         }
         else
         {
            if(m<=3)
            {
               m=12;
               y--;
             }
            else if(m<=6)
               m=3;
            else if(m<=9)
               m=6;
            else if(m<=12)
               m=9;
         }
         break;
   case "2": //半年
         if(v=="++")
         {
            if(m<7)
            {
              m=12;
            }
            else
            {
              m=6;
              y++;
            }
         }
         else
         {
           if(m<7)
           {
              m=12;
              y--;
           }
           else
           {
              m=6;
           }
         }
         break;
   case "3"://年度
        m=12;
        if(v=="++")
        {
           y++;
        }
        else
        {
           y--;
        }
        break;
   default:
         case "0": //月度
         if(v=="++")
         {
            if(m==12)
            {
                 y++;
                 m=1;
            }
            else
            {
               m++;
             }
         }
         else
         {
            if(v=="--")
            {
               if(m==1)
               {
                  y--;
                  m=12;
                }
               else
               {
                  m--;
               }
             }
         }
         break;
   }
 //begin 校对数据期间(最新一期数不能超过此前的45天)
  var lastDate=new Date(new Date() - 45 * 24 * 60 * 60 * 1000);
  var statDate=new Date(Number(y),Number(m)-1,lastDate.getDate());
  
  if(statDate-lastDate>0)
  {
     EndLoad();
     alert("15日公布最新数据^_^,请关注.");
     return false;
  }
  //end 校对数据期间
 for(i=0;i<a_query.length;i++)
 {
     if(v_query!="")
        v_query+="&";
     v_type=a_query[i].substring(0,1);
     if(v_type=="y")
     {
        v_query+="y="+y.toString();
     }
     else if(v_type=="m")
     {
        v_query+="m="+m.toString();
     }
     else
       v_query+=a_query[i];
 }
 f.src=f.src.substring(0,f.src.indexOf("?"))+"?"+v_query;
 if (document.all)
  {
     f.onreadystatechange=EndChart;
     obj=f;
  }
}

function changeImg3(f,v)//年份递增或递减或指定年份 f:图表对象ID；v增减方向:++与--或为年份
{
  f=getimgobj(f);
  query=f.src.substring(f.src.indexOf("?")+1);
  a_query=query.split("&");
  v_query="";
  for(i=0;i<a_query.length;i++)
  {
     if(v_query!="")
        v_query+="&";
     v_type=a_query[i].substring(0,1);
     if(v_type=="y")
     {
        if(v=="++")
        {
           v_query+="y="+(parseInt(a_query[i].split("=")[1])+1).toString();
        }
        else if(v=="--")
        {
           v_query+="y="+(parseInt(a_query[i].split("=")[1])-1).toString();
        }
        else
        {
           v_query+="y="+v;
        }
     }
     else if(v_type=="m")
     {
         v_query+="m=12";
     }
     else
     {
       v_query+=a_query[i];
     }
   }
  f.src=f.src.substring(0,f.src.indexOf("?"))+"?"+v_query;
}

function changeImg4(f,type,v)//改变图表参数f:对象;type=参数;v(++/--)参数值(用途 type值递增或递减
{
  BeginLoad();
  f=getimgobj(f);
  query=f.src.substring(f.src.indexOf("?")+1);
  a_query=query.split("&");
  v_query="";
  for(i=0;i<a_query.length;i++)
  {
     if(v_query!="")
       v_query+="&";
     if(a_query[i].split("=")[0]==type)
     {
        var oldindex=a_query[i].split("=")[1];
        var newindex=0;
        if(v=="++")
           newindex=Number(oldindex)+1;
        else
           newindex=Number(oldindex)-1;
        if(newindex<0)
        {
           newindex=0;
           EndLoad();
           alert("已经是最新数据了^_^");
         }
        if(oldindex==newindex.toString())
        {
           EndLoad();
           obj=f;
           return false;
        }
        v_query+=type+"="+newindex.toString();
      }
     else
        v_query+=a_query[i];
  }
  f.src=f.src.substring(0,f.src.indexOf("?"))+"?"+v_query;
  if (document.all)
  {
     f.onreadystatechange=EndChart;
     obj=f;
  }
}

function changeSize(f,v,t)//改变图表大小f:图表对象；v:改变值其中w为宽度,h为高度,wh为等比；t方向++为放大--为缩小;+-:为默认值
{
  if(t=="+-")
  {
     changeImg1(f,"w","500");
     changeImg1(f,"h","300");
     return false;
  }
  img=getimgobj(f);
  query=img.src.substring(img.src.indexOf("?")+1);
  a_query=query.split("&");
  var width=500;
  var height=300;
  for(i=0;i<a_query.length;i++)
  {
     if(a_query[i].substring(0,1)=="w")
        width=parseInt(a_query[i].split("=")[1]);
     else if(a_query[i].substring(0,1)=="h")
        height=parseInt(a_query[i].split("=")[1]);
  }
  var addnum=1.2;//放大倍数
  if(t=="--")//缩小
  {
    addnum=0.8;
  }
  if(v=="w")
       changeImg1(f,"w",(Math.round(width*addnum)).toString());
  else if(v=="h")
       changeImg1(f,"h",(Math.round(height*addnum)).toString());
  else if(v=="wh")
  {
       changeImg1(f,"w",(Math.round(width*addnum)).toString());
       changeImg1(f,"h",(Math.round(height*addnum)).toString())
  }
}
function checkCategory(xy,v)//计算器轴变换
{
 if(xy=="x")
 {
    for(i=0;i<document.forms[0].CheckY.length;i++)
       document.forms[0].CheckY[i].checked=false;
    var cols="";
    for(i=0;i<document.forms[0].CheckX.length;i++)
    {
       if(document.forms[0].CheckX[i].checked)
       {
          if(cols!="")
             cols+=",";
          cols+=document.forms[0].CheckX[i].value;
       }
    }
    changeImg1(document.forms[0].chart,"y","");
    changeImg1(document.forms[0].chart,"x",cols);
  }
  else
  {
     for(i=0;i<document.forms[0].CheckX.length;i++)
        document.forms[0].CheckX[i].checked=false;
     var rows="";
    for(i=0;i<document.forms[0].CheckY.length;i++)
    {
       if(document.forms[0].CheckY[i].checked)
       {
          if(rows!="")
             rows+=",";
          rows+=document.forms[0].CheckY[i].value;
       }
    }
    changeImg1(document.forms[0].chart,"y",rows);
  }
}
function changeValue(f)
{
   changeImg1(document.forms[0].chart,"v",f.selectedIndex);
}

function getimgobj(id)
{
   var imgs=document.documentElement.getElementsByTagName("img");
   for(i=0;i<imgs.length;i++)
   {  
      if(imgs[i].id.indexOf(id)!=-1)
      {
         return imgs[i];
       }
   }
   return null;
}
//收缩与展开
var collapse=new Image();
var expand=new Image();
collapse.src="/images/collapse.jpg";
expand.src="/images/expand.jpg";
function setCollapse_expand()
{
  var objs=document.getElementById("mychart").getElementsByTagName("div");
  var first=true;
  for(i=0;i<objs.length;i++)
  {
    if(objs[i].className=="content")
    {
       if(!first)
       {
          objs[i].style.display="none";
       }
       else
       {
         heads=document.getElementById("mychart").getElementsByTagName("div");
         for(j=0;j<heads.length;j++)
         {
            if(heads[j].className=="head")
            {
               heads[j].getElementsByTagName("img")[0].src=collapse.src;;
               heads[j].getElementsByTagName("img")[0].setAttribute("alt","收缩");
               heads[j].title="收缩";
               break;
            }
         }
       }
       first=false;
     }
   }
}
function collapse_expand(f)
{
  var img=f.getElementsByTagName("img")[0];
  var objs=f.parentNode.getElementsByTagName("div");
  var obj;
  for(i=0;i<objs.length;i++)
  {
    if(objs[i].className=="content")
    {
       obj=objs[i];
       break;
     }
   }
   if(obj)
   {
     if(obj.style.display=="none")
     {
        obj.style.display="";
        img.src=collapse.src;
        img.setAttribute("alt","收缩");
        f.setAttribute("title","收缩");
      }
     else
     {
        obj.style.display="none";
        img.src=expand.src;
        img.setAttribute("alt","展开");
        f.setAttribute("title","展开");
      }
   }
}