function $$(obj){
 if(document.getElementById){return document.getElementById(obj);}
 else{return document.all.obj;}
}

function sTag(obj){
 var obj1=obj.parentNode.getElementsByTagName("DT");
 var obj2=obj.parentNode.getElementsByTagName("DD");
  for(var i=0;i<obj1.length;i++){
   if(obj==obj1[i]){obj1[i].className="mOve";obj2[i].className="dis1";}
   else{obj1[i].className="mOut";obj2[i].className="dis0";}
  }
  obj1=obj2=i=null;
}

function sDiv(divArr){
 var div="<dl class=\"list5 tt\"><div style=\"width:4px;float:left;overflow:hidden;\">&nbsp;</div>";
 for(var i=0;i<divArr[1].length;i++){
  if(i==0){var c="mOve";}else{var c="mOut";}
  div+="<dt onMouseOver=\"sTag(this)\" class=\""+c+"\">"+divArr[1][i]+"</dt>";
  }
 div+="<div class=\"clear\"></div>";
 for(var j=0;j<divArr[0].length;j++){
  if(j==0){var c="dis1";}else{var c="dis0";}
  div+="<dd id=\""+divArr[0][j]+"_id\" class=\""+c+"\" style=\"width:262px;\"><table><tr><td>数据传输中，请稍候……</td></tr></table></dd>";
  }
 div+="</dl>";
 document.write(div);
 div=i=j=c=null;
}

function sinaJs(jsReq){
 var newJs=document.createElement("script");
 newJs.type="text/javascript";
 newJs.charset="gb2312";
 newJs.src="http://hq.sinajs.cn/"+jsReq;
 document.getElementsByTagName("head")[0].appendChild(newJs);
 newJs[document.all?"onreadystatechange":"onload"]=function(){
  if(document.all&&this.readyState!="loaded"&&this.readyState!="complete"){return;}
  this.parentNode.removeChild(this);newJs=null;
 };
 setTimeout(function(){sinaJs(jsReq)},10000);
}

function udLoa(loaArr){
 var tabArr=new Array();
 var udArr=loaArr.split(",");
 for(var j=0;j<udArr.length;j++){
  tabArr[j]="<table>";
  tabArr[j]+="<tr><th align=\"left\">代　　码</th><th align=\"left\">名　　称</th><th align=\"right\">";
  if(udArr[j].indexOf("volume")!=-1){tabArr[j]+="成 交 量";}
  else if(udArr[j].indexOf("amount")!=-1){tabArr[j]+="成 交 额";}
  else{tabArr[j]+="涨　　跌";}
  tabArr[j]+="</th><th align=\"right\">最 新 价</th></tr>";
  if(eval(udArr[j])!=""){
   for(var i=0;i<eval(udArr[j]).length;i++){
    var td1=eval(udArr[j])[i][0];
    var td2=eval(udArr[j])[i][1];
    var td3=new Number(eval(udArr[j])[i][2]);
    var td4=new Number(eval(udArr[j])[i][3]);
    if(udArr[j].indexOf("volume")!=-1){td4=td4.toFixed(2);}
    else if(udArr[j].indexOf("amount")!=-1){td3=td3.toFixed(2);td4=td4.toFixed(2);}
    else{
     if(td3>0){
      td3="<font color=\"red\">"+td3.toFixed(2)+"%</font>";
      td4="<font color=\"red\">"+td4.toFixed(2)+"</font>";
      }
     else if(td3<0){
      td3="<font color=\"green\">"+td3.toFixed(2)+"%</font>";
      td4="<font color=\"green\">"+td4.toFixed(2)+"</font>";
      }
     else{td3=td3.toFixed(2)+"%";td4=td4.toFixed(2);}
    }
    tabArr[j]+="<tr>";
    tabArr[j]+="<td>"+td1.substring(2,8)+"</td>";
    tabArr[j]+="<td>"+td2+"</td>";
    tabArr[j]+="<td align=\"right\">"+td3+"</td>";
    tabArr[j]+="<td align=\"right\">"+td4+"</td>";
    tabArr[j]+="</tr>";
   }
  td1=td2=td3=td4=null;
  }
  else{
   tabArr[j]+="<tr>";
   tabArr[j]+="<td colspan=\"4\">数据初始化中，请稍候……</td>";
   tabArr[j]+="</tr>";
  }
  tabArr[j]+="</table>";
  if($$(udArr[j]+"_id")){$$(udArr[j]+"_id").innerHTML=tabArr[j];}
 }
 tabarr=udArr=[];i=j=null;
}

function ud(list){
 sDiv(list);
 sinaJs("format=text&func=udLoa('"+list[0]+"');&list="+list[0]);
}

function sImg(imgSrc,imgId){
 var img=new Image();
 img.src=imgSrc+"?tmp="+Math.random();
 img.onload=function(){
  $$(imgId+"_id").style.backgroundImage="url("+img.src+")";$$(imgId+"_id").innerHTML="";img=null;
 };
}

function hqLoa(imgArr){
 for(var i=0;i<imgArr[0].length;i++){sImg(imgArr[2][i],imgArr[0][i]);}
 i=null;
 setTimeout(function(){hqLoa(imgArr)},10000);
}

function hq(list){
 sDiv(list);
 hqLoa(list);
}

function login(name,pass){
 if(xmlhttp("inc/post.asp?action=login&us_name="+name+"&us_pass="+pass)=="err"){
  alert("帐号或密码错误!")
 }
 else{
  window.location.href=xmlhttp("inc/post.asp?action=login&us_name="+name+"&us_pass="+pass);
 }
} 

function logout(){
 if(xmlhttp("inc/post.asp?action=logout")=="out"){
 window.location.reload();
 }
} 

function xmlhttp(url){
 if(window.ActiveXObject){var xml=new ActiveXObject("Microsoft.XMLHTTP");} 
 else if(window.XMLHttpRequest){var xml=new XMLHttpRequest();} 
 xml.open("POST",url,false);
 xml.send("");
 return xml.responseText;
}

function getcookies(n,m){
 var returnvalue="";
 var cookies=unescape(document.cookie);
 if(cookies.length>0){
 var begin=cookies.indexOf(n+"=")+(n+"=").length;
 if(begin!=(n+"=").length-1){
   end=cookies.indexOf(";",begin); 
   if(end==-1){end=cookies.length;}
   var arr=cookies.substring(begin,end).split("&");
   for(var i=0;i<arr.length;i++){
    if(arr[i].split("=")[0]==m){returnvalue=arr[i].split("=")[1]}
   }
  }
 }
 return returnvalue;
}

function aDiv(){ 
 if(arguments[0]=="undefined"||arguments[1]=="undefined"){return;}
 var a=0;
 var b=0;
 try{a=arguments[0].toString().split(".")[1].length;}catch(e){}
 try{b=arguments[1].toString().split(".")[1].length;}catch(e){}
 var c=Number(arguments[0].toString().replace(".",""));
 var d=Number(arguments[1].toString().replace(".",""));
 var e=c/d*Math.pow(10,b-a);
 if(arguments[2]){e=e.toFixed(arguments[2]);}
 return e;
}

function aMul(){ 
 if(arguments[0]=="undefined"||arguments[1]=="undefined"){return;}
 var a=0;
 var b=0;
 try{a=arguments[0].toString().split(".")[1].length;}catch(e){}
 try{b=arguments[1].toString().split(".")[1].length;}catch(e){}
 var c=Number(arguments[0].toString().replace(".",""));
 var d=Number(arguments[1].toString().replace(".",""));
 var e=c*d/Math.pow(10,b+a);
 if(arguments[2]){e=e.toFixed(arguments[2]);}
 return e; 
} 

function aAdd(){ 
 if(arguments[0]=="undefined"||arguments[1]=="undefined"){return;}
 var a=0;
 var b=0;
 try{a=arguments[0].toString().split(".")[1].length;}catch(e){}
 try{b=arguments[1].toString().split(".")[1].length;}catch(e){}
 var c=Math.pow(10,Math.max(a,b));
 var d=Number((arguments[0]*c+arguments[1]*c)/c);
 if(arguments[2]){d=d.toFixed(arguments[2]);}
 return d;
}

function dpLoa(){
 var list1Arr,hqArr,color,i;
 list1Arr=arguments[0].split(",");
 for(i=0; i<list1Arr.length; i++){
  hqArr=eval("hq_str_"+list1Arr[i]).split(",");
  color="black";
  if(hqArr!=""){
   $$(list1Arr[i]+"td0").innerHTML=hqArr[0];
   $$(list1Arr[i]+"td6").innerHTML=Number(hqArr[6]).toFixed(2);
   $$(list1Arr[i]+"td7").innerHTML=Number(hqArr[7]).toFixed(2);
   $$(list1Arr[i]+"td1").innerHTML=Number(hqArr[1]).toFixed(2);
   $$(list1Arr[i]+"td2").innerHTML=Number(hqArr[2]).toFixed(2);
   $$(list1Arr[i]+"td4").innerHTML=Number(hqArr[4]).toFixed(2);
   $$(list1Arr[i]+"td5").innerHTML=Number(hqArr[5]).toFixed(2);
   $$(list1Arr[i]+"td8").innerHTML=aDiv(hqArr[8],100,2);
   $$(list1Arr[i]+"td9").innerHTML=aDiv(hqArr[9],10000,2);
   if(hqArr[3]!=0){
    if(hqArr[3]>hqArr[2]){color="red";}else if(hqArr[3]<hqArr[2]){color="green";}
    $$(list1Arr[i]+"td11").innerHTML="<font color="+color+">"+aMul(aDiv(aAdd(hqArr[3],-hqArr[2]),hqArr[2]),100,2)+"%</font>";
    $$(list1Arr[i]+"td10").innerHTML="<font color="+color+">"+aAdd(hqArr[3],-hqArr[2],2)+"</font>";
   }
   $$(list1Arr[i]+"td3").innerHTML="<font color="+color+">"+Number(hqArr[3]).toFixed(2)+"</font>";
  }
 }
 list1Arr=hqArr=[];color=i=null;
}

function imLoa(){
 var list1Arr=arguments[0].split(",");
 var list2Arr=arguments[1].split(",");
 var list3Arr=arguments[2].split(",");
 var td7,td6,td5,td4,td1,i,color,hqArr;
 td6=td7=0;
 td4=eval("hq_str_"+list1Arr[0]).split(",")[3];
 td5=list3Arr[0].split("|");

 for(i=1; i<list1Arr.length; i++){
  hqArr=eval("hq_str_"+list1Arr[i]).split(",");
  color="black";
  if(hqArr[3]==0){td1=Number(hqArr[2]);}else{td1=Number(hqArr[3]);}
  td6=aAdd(td6,aMul(list3Arr[i],list2Arr[i]));
  td7=aAdd(td7,aMul(td1,list2Arr[i]));
  if(td1>Number(list3Arr[i])){color="red";}else if(td1<Number(list3Arr[i])){color="green";}
  if($$(td5[4]+list1Arr[i]+"td0"))$$(td5[4]+list1Arr[i]+"td0").innerHTML=hqArr[0];
  if($$(td5[4]+list1Arr[i]+"td1"))$$(td5[4]+list1Arr[i]+"td1").innerHTML=td1.toFixed(3);//最新价
  if($$(td5[4]+list1Arr[i]+"td2"))$$(td5[4]+list1Arr[i]+"td2").innerHTML=aMul(td1,list2Arr[i],3)+" 万元";//市值
  if($$(td5[4]+list1Arr[i]+"td3"))$$(td5[4]+list1Arr[i]+"td3").innerHTML="<font color="+color+">"+aMul(aDiv(aAdd(td1,-list3Arr[i]),list3Arr[i]),100,3)+"%</font>";//浮盈
 }

 if($$(td5[4]+"td4"))$$(td5[4]+"td4").innerHTML=td4;//当前沪指
 if($$(td5[4]+"td5"))$$(td5[4]+"td5").innerHTML=aMul(aDiv(aAdd(td4,-td5[1]),td5[1]),100,3)+"%";//沪指同比
 if($$(td5[4]+"td6"))$$(td5[4]+"td6").innerHTML=td6.toFixed(3)+" 万元";//成本合计
 if($$(td5[4]+"td7"))$$(td5[4]+"td7").innerHTML=td7.toFixed(3)+" 万元";//市值合计
 if($$(td5[4]+"td8"))$$(td5[4]+"td8").innerHTML=aAdd(td7,list2Arr[0],3)+" 万元";//总资产
 if($$(td5[4]+"td9"))$$(td5[4]+"td9").innerHTML=aMul(aDiv(td7,aAdd(td7,list2Arr[0])),100,3)+"%";//持仓比
 if($$(td5[4]+"td10"))$$(td5[4]+"td10").innerHTML=aMul(aDiv(aAdd(aAdd(td7,list2Arr[0]),-td5[0]),td5[0]),100,3)+"%";//收益率
 list1Arr=list2Arr=list3Arr=hqArr=td5=[];td7=td6=td4=td1=i=color=null;
}


var Request=new function(){ 
 var names=[]; //参数名列表 
 var values=[]; //参数值列表 
 var queryString=location.search.substr(1); 
 var params=queryString.split("&"); 
 for(var i=0;i<params.length;i++){ 
  var param=params[i].split("="); 
  names[names.length]=param[0]; 
  values[values.length]=param[1]; 
 } 
 this.names=names; 
 this.values=values; 
 this.length=params.length; 
 this.getParameter=function(name){ 
  for(i=0;i<names.length;i++){if(names[i]==name){return values[i];}}
 } 
} 

function req(n){
 for(i=0;i<Request.length;i++){if(Request.names[i]==n){return Request.values[i];}}
}


//测字符串实际长度
String.prototype.Tlength = function(){var arr=this.match(/[^\x00-\xff]/ig);return this.length+(arr==null?0:arr.length);}

//字符串左取
String.prototype.left = function(num,mode){if(!/\d+/.test(num))return(this);var str = this.substr(0,num);if(!mode) return str;var n = str.Tlength()-str.length;num = num-parseInt(n/2);return this.substr(0,num);}

//字符串右取
String.prototype.right = function(num,mode){if(!/\d+/.test(num))return(this);var str = this.substr(this.length-num);if(!mode) return str;var n = str.Tlength()-str.length;num = num-parseInt(n/2);return this.substr(this.length-num);}


var Class={
  create:function(){
    return function(){
      this.initialize.apply(this,arguments);
   }
 }
}

var Extend=function(destination,source){
    for (var property in source){
        destination[property]=source[property];
   }
    return destination;
}


var Calendar=Class.create();
Calendar.prototype={
  initialize:function(container,options){
	//容器(table结构)
	this.Container=$$(container);
	//日期对象列表
	this.Days=[];
	this.SetOptions(options);
	this.Year=this.options.Year||Number(req("yy"))||new Date().getFullYear();
	this.Month=this.options.Month||Number(req("mm"))||new Date().getMonth()+1;
	this.onToday=this.options.onToday;
	this.onFinish=this.options.onFinish;	
	
	this.Draw();
 },
  //设置默认属性
  SetOptions:function(options){
	//默认值
	this.options={
		Year:			0,//显示年
		Month:			0,//显示月
		onToday:		function(){},//在当天日期触发
		onFinish:		function(){}//日历画完后触发
	};
	Extend(this.options,options ||{});
 },
  //当前月
  NowMonth:function(){
	this.PreDraw(new Date());
 },
  //上一月
  PreMonth:function(){
	this.PreDraw(new Date(this.Year,this.Month-2,1));
 },
  //下一月
  NextMonth:function(){
	this.PreDraw(new Date(this.Year,this.Month,1));
 },
  //上一年
  PreYear:function(){
	this.PreDraw(new Date(this.Year-1,this.Month-1,1));
 },
  //下一年
  NextYear:function(){
	this.PreDraw(new Date(this.Year+1,this.Month-1,1));
 },
  //根据日期画日历
  PreDraw:function(date){
	//再设置属性
	this.Year=date.getFullYear(); this.Month=date.getMonth()+1;
	//重新画日历
	this.Draw();
 },
  //画日历
  Draw:function(){
	//用来保存日期列表
	var arr=[];
	//用当月第一天在一周中的日期值作为当月离第一天的天数
	for(var i=1,firstDay=new Date(this.Year,this.Month-1,1).getDay(); i<=firstDay; i++){arr.push(0);}
	//用当月最后一天在一个月中的日期值作为当月的天数
	for(var i=1,monthDay=new Date(this.Year,this.Month,0).getDate(); i<=monthDay; i++){arr.push(i);}
	//清空原来的日期对象列表
	this.Days=[];
	//插入日期
	var frag=document.createDocumentFragment();
	while(arr.length){
		//每个星期插入一个tr
		var row=document.createElement("tr");
		//每个星期有7天
		for(var i=1; i<=7; i++){
			var cell=document.createElement("td"); cell.innerHTML="&nbsp;";
			if(arr.length){
				var d=arr.shift();
				if(d){
					cell.innerHTML=d;
					this.Days[d]=cell;
					var on=new Date(this.Year,this.Month-1,d);
					//判断是否今日
					this.IsSame(on,new Date())&&this.onToday(cell);
				}
			}
			row.appendChild(cell);
		}
		frag.appendChild(row);
	}
	//先清空内容再插入(ie的table不能用innerHTML)
	while(this.Container.hasChildNodes()){this.Container.removeChild(this.Container.firstChild);}
	this.Container.appendChild(frag);
	//附加程序
	this.onFinish();
 },
  //判断是否同一日
  IsSame:function(d1,d2){
	return (d1.getFullYear()==d2.getFullYear()&&d1.getMonth()==d2.getMonth()&&d1.getDate()==d2.getDate());
 } 
}


