/* tools */
if(typeof($) =='undefined')$=function (id) {
	return document.getElementById(id)
};
if(typeof($C)=='undefined')$C=function (t) {
	return document.createElement(t)
};
if(typeof($T)=='undefined')$T=function (t) {
	return document.createTextNode(t)
};
if(typeof(_A)=='undefined')_A=function (t,c) {
	t.appendChild(c)
};
if(typeof(_I)=='undefined')_I=function (t,c) {
	t.innerHTML=c
};
if(typeof(S_Finance)=='undefined')S_Finance={
};
Function.prototype._Bind=function () {
	var __m=this,object=arguments[0],args=new Array();
	for(var i=1;i<arguments.length;i++) {
		args.push(arguments[i]);
	}
	return function () {
		var c_args=[];
		for(var k=0;k<arguments.length;k++) {
			c_args.push(arguments[k]);
		}
		return __m.apply(object,c_args.concat(args));
	}
};

var Util = {
		getRandomNumber: function () {
		var date = new Date();
		return Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()) + Math.random().toString().replace(".", "");
		}
};

/* configs */
var AppConf={
	Interval_Uppage:12*60*1000,/* 整个页面停止更新的时间间隔 */
	Interval_Updata:20*1000,/* 数据更新的时间间隔 */
	Interval_1s:1*1000,/* 延迟一秒,做闪烁效果用 */
	_isUppage:true,
	veracitynum:2/* 精确到小数点后面多少位数 */
};
S_Finance.constant={
	browserDetect:function () {
		var sUA=navigator.userAgent.toLowerCase();
		var sIE=sUA.indexOf("msie");
		var sOpera=sUA.indexOf("opera");
		var sMoz=sUA.indexOf("gecko");
		if(sOpera!=-1)return "opera";
		if(sIE!=-1) {
			nIeVer=parseFloat(sUA.substr(sIE+5));
			if(nIeVer>=6)return "ie6";
			else if(nIeVer>=5.5)return "ie55";
			else if(nIeVer>=5)return "ie5";
		}
		if(sMoz!=-1)return "moz";
		return "other";
	},
	_getCurrtime:function (time1) {
		var curtime=S_Finance.constant._getAlltime();
		var kk=curtime[7];
		if(time1>0) {
			kk=parseFloat((kk/time1)).toFixed(0);
		}
		return kk;
	},
	// 时间
	_getAlltime:function (timestr) {
		var weeeklist=["日","一","二","三","四","五","六"];
		if(timestr!=null&&timestr!=undefined&&timestr!="undefined"&&timestr!="") {
			// timestr = 2007-03-18:13:51:43
			var temtime=timestr.split(":");
			var dat=temtime[0];
			var temdat=dat.split("-");
			var ye=temdat[0];
			var mo=temdat[1];
			var da=temdat[2];
			var ho=temtime[1];
			var mi=temtime[2];
			var se=temtime[3];
			var alltime=new Date(ye,(mo-1),da,ho,mi,se,0);
			var we=alltime.getDay();
			var gettime=alltime.getTime();
			var zhouci=weeeklist[alltime.getDay()];
		}else {
			var alltime=new Date();
			var ye=alltime.getFullYear();
			var mo=alltime.getMonth()+1;
			var da=alltime.getDate();
			var ho=alltime.getHours();
			var mi=alltime.getMinutes();
			var se=alltime.getSeconds();
			var we=alltime.getDay();
			var gettime=alltime.getTime();
			var zhouci=weeeklist[alltime.getDay()];
		};
		time_arr=[ye,mo,da,ho,mi,se,we,gettime,zhouci];
		return time_arr;
	},
	/* 判断当前是否交易时间，返回：０：开盘以前，１：交易时间，-1：周末，２：收盘以后 3：午休时间 4:大假 */
	_ifTradeTime:function (timestr) {
		var time_arr=S_Finance.constant._getAlltime(timestr);
		// 剔除十一，元旦等假日
		if((time_arr[1]*1==1&&time_arr[2]*1<4)||(time_arr[1]*1==5&&time_arr[2]*1<8)||(time_arr[1]*1==10&&time_arr[2]*1<8)) {
			return 4;
		}
		// 剔除 周末
		if(time_arr[6]<1||time_arr[6]>5) {
			return -1;
		}
		// 将二十四小时变为千位数字
		var ob_time=time_arr[3]*100+time_arr[4]*1;
		if(ob_time<925) {
			return 0;
		}else if(ob_time<1135) {
			return 1;
		}else if(ob_time<1255) {
			return 3;
		}else if(ob_time<1505) {
			return 1;
		}else {
			return 2;
		}
	},
	load_data_script:function (url,idname) {
		var obj=$(idname);
		if(obj) {
			obj.parentNode.removeChild(obj);
		};
		var newscript=$C("script");
		newscript.type="text/javascript";
		newscript.src=url;
		newscript.charset="gb2312";
		newscript.id=idname;
		_A(document.body,newscript);
	}
};
S_Finance.upconstants={
	itemTickettime:null,
	servertime:null,
	hq_time:null,
	sameTimes:0,
	/* up data begin */
	_updata:function () {
		if(AppConf._isUppage) {
			//var theurl="http://hq.sinajs.cn/format=js&func=S_Finance.upconstants.setData();&list=s_sh000001,s_sz399001,s_sh000300,int_dji,int_nasdaq,int_ftse,int_nikkei,int_hangseng,int_sp500,int_dax30";
			var theurl="http://hq.sinajs.cn/format=js&func=S_Finance.upconstants.setData();&list=s_sh000001,s_sz399001,s_sh000300,b_HSI,b_TWSE,b_FSSTI,b_NKY,int_dji,int_nasdaq,int_sp500,b_NYA,int_ftse,int_dax30,b_CAC,b_SMI,int_nikkei,int_hangseng,USDCNY,HKD,DINI,EUR,GBP,JPY,AUD,CAD,hf_GC,hf_CL,hf_S,hf_C,hf_CAD,hf_ZSD,hf_AHD,hf_TRB";
			S_Finance.constant.load_data_script(theurl,"datascript");
		}
	},
	setData:function () {
		S_Finance.upconstants.setSHSZ();
		if(!S_Finance.constant.browserDetect()!="ie5") {
			if(S_Finance.constant._ifTradeTime()==1) {
				setTimeout(this._updata._Bind(this),AppConf.Interval_Updata);
			}else{
				setTimeout(this._updata._Bind(this),AppConf.Interval_Updata * 5);
			}
		};
	},
	setSHSZ:function () {
		var code_arr=new Array("s_sh000001","s_sz399001","s_sh000300");
		//var glo_code_arr=Array("int_dji","int_nasdaq","int_ftse","int_nikkei","int_hangseng","int_sp500","int_dax30");
		var glo_code_arr=new Array("b_HSI","b_TWSE","b_FSSTI","b_NKY","b_INDU","b_CCMP","b_SPX","b_NYA","b_UKX","b_DAX","b_CAC","b_SMI");
		var forex_code_arr=new Array("USDCNY","HKD","DINI","EUR","GBP","JPY","AUD","CAD");
		var bargain_code_arr=new Array("hf_GC","hf_CL","hf_S","hf_C","hf_CAD","hf_ZSD","hf_AHD","hf_TRB");
		//var glo_code_arr=Array();
		for(var i=0;i<code_arr.length;i++) {
			var code=code_arr[i];
			var hq_str=eval("hq_str_"+code);
			if(hq_str!=null&&hq_str!=undefined&&hq_str!="undefined"&&hq_str!="") {
				idxary=this.getIdxData(hq_str);
				this.setIdxShow(idxary,code);
			}
		};
		for(var i=0;i<glo_code_arr.length;i++) {
			var code=glo_code_arr[i];
			var hq_str=eval("hq_str_"+code);
			if(hq_str!=null&&hq_str!=undefined&&hq_str!="undefined"&&hq_str!="") {
				idxary=this.getIdxData(hq_str);
				this.setGloIdxShow(idxary,code);
			}
		};
		for(var i=0;i<forex_code_arr.length;i++) {
			var code=forex_code_arr[i];
			var hq_str=eval("hq_str_"+code);
			if(hq_str!=null&&hq_str!=undefined&&hq_str!="undefined"&&hq_str!="") {
				idxary=hq_str.split(",");
				this.setForexIdxShow(idxary,code);
			}
		};
		
		for(var i=0;i<bargain_code_arr.length;i++) {
			var code=bargain_code_arr[i];
			var hq_str=eval("hq_str_"+code);
			if(hq_str!=null&&hq_str!=undefined&&hq_str!="undefined"&&hq_str!="") {
				idxary=hq_str.split(",");
				this.setBargainIdxShow(idxary,code);
			}
		};
		
	},
	/* 设置显示内容 */
	getIdxData:function (datastr) {
		var idat=new Array();
		var odat=new Array();
		idat=datastr.split(",");
		odat[0]=idat[0];
		/* name */
		odat[1]=parseFloat(idat[1]).toFixed(AppConf.veracitynum);
		/* price */
		odat[2]=parseFloat(idat[3]).toFixed(AppConf.veracitynum);
		/* percent */
		odat[3]=parseFloat(idat[5]/10000).toFixed(AppConf.veracitynum);
		/* amount */
		odat[4]=parseFloat(idat[2]).toFixed(AppConf.veracitynum);
		/* percent */
		return odat;
	},
	setIdxShow:function (datary,symbol) {
		var xn=$("idx"+symbol);
		if (!xn)
			return;
		var childs = xn.getElementsByTagName("div");
		//var showstr1=childs[0];
		var showstr2=childs[1];
		var showstr3=childs[2];
		//_I(showstr1, datary[0]);
		_I(showstr2,datary[1]);
		if(datary[2]>0) {
			//showstr3.setAttribute("className","rise");
			xn.className="rise";
			_I(showstr3,datary[2]+"%");
		}else if(datary[2]<0) {
			//showstr3.setAttribute("className","drop");
			xn.className="drop";
			_I(showstr3,datary[2]+"%");
		}else {
			_I(showstr3,datary[2]+"%");
		}
		//xn.appendChild(showstr1);
		//xn.appendChild(showstr2);
		//xn.appendChild(showstr3);
	},
	setGloIdxShow:function (datary,symbol) {
		var xn=$("idx"+symbol);
		if (!xn)
			return;
		var childs = xn.getElementsByTagName("div");
		//var showstr1=childs[0];
		var showstr2=childs[1];
		var showstr3=childs[2];
		//_I(showstr1, datary[0]);
		_I(showstr2,datary[1]);
		if(datary[4]>0) {
			//showstr3.setAttribute("className","rise");
			xn.className="rise";
			_I(showstr3,datary[2]+"%");
		}else if(datary[4]<0) {
			//showstr3.setAttribute("className","drop");
			xn.className="drop";
			_I(showstr3,datary[2]+"%");
		}else {
			_I(showstr3,datary[2]+"%");
		}
	},
	setForexIdxShow:function (datary,symbol) {
		var xn=$("idx"+symbol);
		if (!xn)
			return;
		var childs = xn.getElementsByTagName("div");
		//var showstr1=childs[0];
		var showstr2=childs[1];
		var showstr3=childs[2];
		//_I(showstr1, datary[0]);
		_I(showstr2,datary[8]);
		var r = (datary[8]-datary[3])/datary[3]*100;
		var r1 = r.toFixed(AppConf.veracitynum) +"%";
		
		if(r>0) {
			//showstr3.setAttribute("className","rise");
			xn.className="rise";
			_I(showstr3,r1);
		}else if(r<0) {
			//showstr3.setAttribute("className","drop");
			xn.className="drop";
			_I(showstr3,r1);
		}else {
			_I(showstr3,r1);
		}
	},
	setBargainIdxShow:function (datary,symbol) {
		var xn=$("idx_"+symbol);
		if (!xn)
			return;
		var childs = xn.getElementsByTagName("div");
		//var showstr1=childs[0];
		var showstr2=childs[1];
		var showstr3=childs[2];
		//_I(showstr1, datary[0]);
		_I(showstr2,parseFloat(datary[0]).toFixed(AppConf.veracitynum));
		var r = (datary[0]-datary[7])/datary[0]*100;
		var r1 = r.toFixed(AppConf.veracitynum) +"%";
		
		if(r>0) {
			//showstr3.setAttribute("className","rise");
			xn.className="rise";
			_I(showstr3,r1);
		}else if(r<0) {
			//showstr3.setAttribute("className","drop");
			xn.className="drop";
			_I(showstr3,r1);
		}else {
			_I(showstr3,r1);
		}
	}
	
};

S_Finance.bargains={
	itemTickettime:null,
	servertime:null,
	hq_time:null,
	sameTimes:0,
	/* up data begin */
	_updata:function () {
		if(AppConf._isUppage) {
			var theurl="/js/bargain.js?t=" + Util.getRandomNumber();
			S_Finance.constant.load_data_script(theurl,"bargainscript");
		}
	},
	setData:function () {
		S_Finance.bargains.setSHSZ();
		if(!S_Finance.constant.browserDetect()!="ie5") {
				setTimeout(this._updata._Bind(this),AppConf.Interval_Updata);
		};
	},
	setSHSZ:function () {
		var bargin_code_arr=new Array("GC","CL","S","C","CAD","ZSD","AHD","TRB");
		for(var i=0;i<bargin_code_arr.length;i++) {
			var code=bargin_code_arr[i];
			var hq_str=eval("bar_"+code);
			if(hq_str!=null&&hq_str!=undefined&&hq_str!="undefined"&&hq_str!="") {
				idxary=hq_str.split(",");
				this.setBarginIdxShow(idxary,code);
			}
		};
	},
	setBarginIdxShow:function (datary,symbol) {
		var xn=$("idx_b_"+symbol);
		var childs = xn.getElementsByTagName("div");
		//var showstr1=childs[0];
		var showstr2=childs[1];
		var showstr3=childs[2];
		//_I(showstr1, datary[0]);
		_I(showstr2,datary[1]);
		var r = datary[2]/datary[8]*100;
		r = r.toFixed(AppConf.veracitynum) +"%";
		if(datary[2]>0) {
			//showstr3.setAttribute("className","rise");
			xn.className="rise";
			_I(showstr3,r);
		}else if(datary[2]<0) {
			//showstr3.setAttribute("className","drop");
			xn.className="drop";
			_I(showstr3,r);
		}else {
			_I(showstr3,r);
		}
	}
};