/*
 * 基金净值,最新净值页面
 */
function initRanking(){
	UserCookie.init();
	lastSynchronizedTime = new Date();
	if(lastSynchronizedTime.getHours()>=17 && lastSynchronizedTime.getHours()<=23){
		currentFieldIndex = 0;
	}else{
		currentFieldIndex = 6;//增长率
	}
	
	SortRankValue.init();
	
	currentFieldIndex_ = 5;
	
	//定时取数据
	setInterval("SortRankValue.SynchronizedData()",15000);//15秒钟询问同步
}

var SortRankValue = {
	"init": function(){
		fundType = 0;//基金类型：0-全部; 1－股票型；2－混合型；3－低风险型
		
		onlyShowMyAttention = false;//只显示我关注的基金
		
		fieldState = new Array(8);
		for(var i=0;i<fieldState.length;i++){
			fieldState[i] = 'ASC';
		}
		
		fieldArr = new Array(8);
		fieldArr[0] = 'EndDate';
		fieldArr[1] = 'FundCode';
		fieldArr[2] = 'FundName';
		fieldArr[3] = 'UnitNV';
		fieldArr[4] = 'AccumulatedUnitNV';
		fieldArr[5] = 'GrowthValue';
		fieldArr[6] = 'GrowthRate';
		fieldArr[7] = 'Size';
		fieldArrLabel = new Array(8);
		fieldArrLabel[0] = '日期';
		fieldArrLabel[1] = '代码';
		fieldArrLabel[2] = '名称';
		fieldArrLabel[3] = '单位净值';
		fieldArrLabel[4] = '累计净值';
		fieldArrLabel[5] = '增长值';
		fieldArrLabel[6] = '增长率(%)';
		fieldArrLabel[7] = '规模(亿元)';
		
		toUpFlag = '↑';
		toDownFlag = '↓';
		
		tableHead1 = new Array();
		tableHead1.push('<div class="c1">序号</div>');
		tableHead1.push('<div class="c2" id="labeldiv0" onclick="SortRankValue.sort(0);" style="cursor:hand;">日期</div>');
		tableHead1.push('<div class="c3" id="labeldiv1" onclick="SortRankValue.sort(1);" style="cursor:hand;">代码</div>');
		tableHead1.push('<div class="c4" id="labeldiv2" onclick="SortRankValue.sort(2);" style="cursor:hand;">名称</div>');
		tableHead1.push('<div class="c5" id="labeldiv3" onclick="SortRankValue.sort(3);" style="cursor:hand;">单位净值</div>');
		tableHead1.push('<div class="c6" id="labeldiv4" onclick="SortRankValue.sort(4);" style="cursor:hand;">累计净值</div>');
		tableHead1.push('<div class="c7" id="labeldiv5" onclick="SortRankValue.sort(5);" style="cursor:hand;">增长值</div>');
		tableHead1.push('<div class="c8" id="labeldiv6" onclick="SortRankValue.sort(6);" style="cursor:hand;">增长率(%)</div>');
		tableHead1.push('<div class="c9" id="labeldiv7" onclick="SortRankValue.sort(7);" style="cursor:hand;">规模(亿元)</div>');
		tableHead1.push('<div class="c10" id="labeldiv8">交易状态</div>');
		tableHead1.push('<div class="c11">详细走势</div>');
		tableHead1.push('<div class="clear"></div>'); 
		
		//--------------------货币类型
		
		fieldState2 = new Array(8);
		for(var i=0;i<fieldState2.length;i++){
			fieldState2[i] = 'ASC';
		}
		
		fieldArr2 = new Array(8);
		fieldArr2[0] = 'FundCode';
		fieldArr2[1] = 'FundName';
		fieldArr2[2] = 'Manager';
		fieldArr2[3] = 'EndDate';
		fieldArr2[4] = 'NV';
		fieldArr2[5] = 'UnitNV';
		fieldArr2[6] = 'AccumulatedUnitNV';
		fieldArr2[7] = 'DiscountRatio';
		
		fieldArrLabel2 = new Array(8);
		fieldArrLabel2[0] = '代码';//--
		fieldArrLabel2[1] = '名称';//--
		fieldArrLabel2[2] = '经理人';
		fieldArrLabel2[3] = '日期';//--
		fieldArrLabel2[4] = '净值';
		fieldArrLabel2[5] = '每万份基金单位收益(元)';//--
		fieldArrLabel2[6] = '累计单位净值';
		fieldArrLabel2[7] = '最近七日收益折算的年收益率(%)';//--
		
		tableHead2 = new Array();
		tableHead2.push('<div class="d1">排名</div>');
		tableHead2.push('<div class="d2" id="labeldiv_3" onclick="SortRankValue.sort2(3);" style="cursor:hand;">日期</div>');
		tableHead2.push('<div class="d3" id="labeldiv_0" onclick="SortRankValue.sort2(0);" style="cursor:hand;">代码</div>');
		tableHead2.push('<div class="d4" id="labeldiv_1" onclick="SortRankValue.sort2(1);" style="cursor:hand;"><h3>名称</h3></div>');
		tableHead2.push('<div class="d5" id="labeldiv_5" onclick="SortRankValue.sort2(5);" style="cursor:hand;">每万份基金单位收益(元)</div>');
		tableHead2.push('<div class="d6" id="labeldiv_7" onclick="SortRankValue.sort2(7);" style="cursor:hand;">最近七日收益折算的年收益率(%)</div>');
		tableHead2.push('<div class="clear"></div>');
		
		$('movingDiv').innerHTML = tableHead1.join('');
		
		UserID = UserCookie.getVisitedInf(2);
		
		if(UserID == null || UserID == ''){
			$('showMyattentionPanel').innerHTML = '<span class="cRed">特别提示：点击表头可实现升、降排序</span>';
		}else{
			$('showMyattentionPanel').innerHTML = '<span class="cRed">特别提示：点击表头可实现升、降排序</span><input name="setMyAttentionalFundButton" id="setMyAttentionalFundButton" onclick="SortRankValue.setShowOnlyMyAttenyionFund()" type="button" value="只显示我关注的基金" class="rankingInput01" />';
		}
		
		myFundList = UserCookie.getMyAttetionalFund();
		
		if(myFundList == null || myFundList ==''){
			//若Cookie数据不存在,则取服务器数据
			if(UserID == null || UserID == ''){
				myFundList = '';
				SortRankValue.sort(currentFieldIndex);
			}else{
				MyAttentionalFundService.getMyAttentionalFundString(UserID,{
					callback:function(re) {
						MyFundCodeList = new Array();
						var reArr = re.split(',');
						for(var i=0;i<reArr.length - 1;i++){
							MyFundCodeList.push(reArr[i]);
						}
						//将我选的基金代码存储到cookie
						//转换成"|"分割,存Cookie
						var cv = '';
						for(var i=0;i<MyFundCodeList.length;i++){
							cv+=MyFundCodeList[i]+'|';
						}
						UserCookie.setMyAttetionalFund(cv);
						myFundList = cv;
						SortRankValue.sort(currentFieldIndex);
					},
					timeout:30000,
					errorHandler:function(message) {
						if(message!=null && message!=""){
							//alert(message);
						}
					}
				});
			}
		}else{
			SortRankValue.sort(currentFieldIndex);
		}
	},
	"setShowOnlyMyAttenyionFund": function(){
		onlyShowMyAttention = !onlyShowMyAttention;
		if(onlyShowMyAttention){
			$('setMyAttentionalFundButton').value = '显示所有基金';
		}else{
			$('setMyAttentionalFundButton').value = '只显示我关注的基金';
		}
		
		SortRankValue.sort(currentFieldIndex);
	},
	"setDataType": function(type){
		/* set the background which link is clicked */
		try{
			for(var i=1;i<=8;i++){		
				document.getElementById("a".concat(i)).style.background="#FFFFFF";
			}
			document.getElementById("a".concat(type)).style.background="#DDDDDD";
		}catch(exception){
		}
	
		fundType = type;
		if(fundType == 4){
			$('movingDiv').innerHTML = tableHead2.join('');
			SortRankValue.sort2(currentFieldIndex_);
		}else{
			$('movingDiv').innerHTML = tableHead1.join('');
			SortRankValue.sort(currentFieldIndex);//默认按时间排序
		}
	},
	"sort": function(fieldIndex){
		//var aaaaaaaa = new Date();
		$('labeldiv'+currentFieldIndex).innerHTML = fieldArrLabel[currentFieldIndex]; 
		currentFieldIndex = fieldIndex;
		if(fieldState[currentFieldIndex] == 'ASC'){
			$('labeldiv'+currentFieldIndex).innerHTML = fieldArrLabel[currentFieldIndex] + toDownFlag;
		}else{
			$('labeldiv'+currentFieldIndex).innerHTML = fieldArrLabel[currentFieldIndex] + toUpFlag;
		}
		
		if(fieldState[currentFieldIndex] == 'ASC'){
			fieldState[currentFieldIndex] = 'DESC';
		}else{
			fieldState[currentFieldIndex] = 'ASC';
		}
		var perDay = lastSynchronizedTime.getYear()+'_'+lastSynchronizedTime.getMonth()+'_'+lastSynchronizedTime.getDate()+'_'+lastSynchronizedTime.getHours();
		if(lastSynchronizedTime.getHours()> 16 && lastSynchronizedTime.getHours() <= 23){
			perDay = Math.random();
		}
		richer.dtp.getData('/static/netvalue/'+fundType+','+fieldArr[currentFieldIndex]+','+fieldState[currentFieldIndex]+'.dat?'+perDay,{
			callback:function(vvv) {	
				//var bbbbbbb = new Date();			
				var re = vvv.split('|');
				var htmlSrc=new Array();
				var i_ = 0;
				for(var i=0;i<re.length - 1;i++){
					var vvvv = re[i].split(';');
					var flag = false;
					var reg = new RegExp(vvvv[1]);
					if(reg.test(myFundList)){ 
						flag = true;
					}
					if(onlyShowMyAttention == false || flag){
						htmlSrc.push(SortRankValue.formatHtml(flag ,(++i_) ,vvvv[0] ,vvvv[1] ,vvvv[2] ,vvvv[3] ,vvvv[4] ,vvvv[5] ,vvvv[6] ,vvvv[7], vvvv[8]));
					}
				}
				$('rankingList').innerHTML = htmlSrc.join('');
				
				lastSynchronizedTime = new Date();
				
				//document.title = (lastSynchronizedTime.getTime()-bbbbbbb.getTime())/1000 + '>>>>>' +(lastSynchronizedTime.getTime()-aaaaaaaa.getTime())/1000;
			}
		});
	},
	"formatHtml": function(flag,index ,endDate ,fundCode ,fundName ,unitNV ,accumulatedUnitNV ,growthValue ,growthRate,size, status){
		var hc = new Array();
		hc.push('<li');
		if(flag){
			hc.push(' class="rankingListSelect"');
		}
		
		if(status != '开放'){
			status = '<span class="cRed">' + status + '</span>';
		}
		
		hc.push('><div class="c1"> '+index+'</div>');
		hc.push('<div class="c2"> '+endDate+'</div>');
		hc.push('<div class="c3"><a href="fundDetail.html?code='+fundCode+'"> '+fundCode+'</a></div>');
		hc.push('<div class="c4"><h3><a href="fundDetail.html?code='+fundCode+'"> '+fundName+'</a></h3></div>');
		hc.push('<div class="c5"> '+unitNV+'</div>');
		hc.push('<div class="c6"> '+accumulatedUnitNV+'</div>');
		hc.push('<div class="c7"><span class="'+(parseFloat(growthValue)>=0? 'cRed' : 'cGreen')+'"> '+(growthValue ==0 ? '--' : ((parseFloat(growthRate) <= -10 || parseFloat(growthRate) >= 10) ? '*' : (parseFloat(growthValue).toFixed(4)) ) )+'</span></div>');
		hc.push('<div class="c8"><span class="'+(parseFloat(growthRate)>=0? 'cRed' : 'cGreen')+'"> '+(growthRate ==0 ? '--' : ((parseFloat(growthRate) <= -10 || parseFloat(growthRate) >= 10) ? '*' : (parseFloat(growthRate).toFixed(4)+'%') ))+'</span></div>');
		hc.push('<div class="c9"> '+(parseInt(size/10000))/10000+'</div>');
		hc.push('<div class="c10">' + status + '</div>');
		hc.push('<div class="c11"><a href="fundDetail.html?code='+fundCode+'">详细走势</a> <a href="http://fund8.money.163.com/bbs/list/'+fundCode+'.html">讨论</a></div>');
		hc.push('<div class="clear"></div></li>');
		return hc.join('');
	},
	"sort2": function(fieldIndex){
		$('labeldiv_'+currentFieldIndex_).innerHTML = fieldArrLabel2[currentFieldIndex_]; 
		currentFieldIndex_ = fieldIndex;
		if(fieldState2[currentFieldIndex_] == 'ASC'){
			$('labeldiv_'+currentFieldIndex_).innerHTML = fieldArrLabel2[currentFieldIndex_] + toDownFlag;
		}else{
			$('labeldiv_'+currentFieldIndex_).innerHTML = fieldArrLabel2[currentFieldIndex_] + toUpFlag;
		}
		
		if(fieldState2[currentFieldIndex_] == 'ASC'){
			fieldState2[currentFieldIndex_] = 'DESC';
		}else{
			fieldState2[currentFieldIndex_] = 'ASC';
		}
		var perDay = lastSynchronizedTime.getYear()+'_'+lastSynchronizedTime.getMonth()+'_'+lastSynchronizedTime.getDate()+'_'+lastSynchronizedTime.getHours();
		if(lastSynchronizedTime.getHours()> 16 && lastSynchronizedTime.getHours() <= 23){
			perDay = Math.random();
		}
		richer.dtp.getData('/static/data/netvalue/mf/c,'+fieldArr2[currentFieldIndex_]+','+fieldState2[currentFieldIndex_]+'.dat?'+perDay,{
			callback:function(vvv) {
				var re = vvv.split('|');
				var htmlSrc=new Array();
				var i_ = 0;
				for(var i=0;i<re.length - 1;i++){
					var vvvv = re[i].split(';');
					var flag = false;
					var reg = new RegExp(vvvv[1]);
					if(reg.test(myFundList)){ 
						flag = true;
					}
					if(onlyShowMyAttention == false || flag){
						htmlSrc.push(SortRankValue.formatHtml2(flag ,(++i_) ,vvvv[3] ,vvvv[0] ,vvvv[1] ,vvvv[5] ,vvvv[7]));
					}
				}
				$('rankingList').innerHTML = htmlSrc.join('');
				
				lastSynchronizedTime = new Date();
			}
		});
	},
	"formatHtml2": function(flag,i1,i2,i3,i4,i5,i6){
		var hc = new Array();
		hc.push('<li');
		if(flag){
			hc.push(' class="c11"');
		}
		hc.push('><div class="d1">'+i1+'</div>');
		hc.push('<div class="d2">'+i2+'</div>');
		hc.push('<div class="d3">'+i3+'</div>');
		hc.push('<div class="d4"><h3>'+i4+'</h3></div>');
		hc.push('<div class="d5">'+i5+'</div>');
		hc.push('<div class="d6">'+i6+'</div>');
		hc.push('</li>');
		return hc.join('');
	},
	"SynchronizedData": function(){
		if(lastSynchronizedTime.getHours()> 16 && lastSynchronizedTime.getHours() <= 23){
			var nnn = new Date();
			if(nnn.getTime() - lastSynchronizedTime.getTime() > 3*60*1000){//3分钟同步一次
				document.title = '基金净值-网易财经'+'['+nnn.getHours()+':'+nnn.getMinutes()+']';
				if(fundType == 4){
					if(fieldState2[currentFieldIndex_] == 'ASC'){
						fieldState2[currentFieldIndex_] = 'DESC';
					}else{
						fieldState2[currentFieldIndex_] = 'ASC';
					}
					SortRankValue.sort2(currentFieldIndex_);
				}else{
					if(fieldState[currentFieldIndex] == 'ASC'){
						fieldState[currentFieldIndex] = 'DESC';
					}else{
						fieldState[currentFieldIndex] = 'ASC';
					}
					SortRankValue.sort(currentFieldIndex);//默认按时间排序
				}
			}
		}
	}
}