var FundsMappingArray=new Array();
//解析xml文件
function loadXml(fileRoute)
{  
   var oXmlDom=null;
   if (window.ActiveXObject){
    var xmlVersions = new Array("Msxml2.DOMDocument.6.0","MSXML2.DOMDocument.3.0", "MSXML2.DOMDocument.4.0",
                                 "MSXML2.DOMDocument.5.0","MSXML2.DOMDocument", "Microsoft.XmlDom");
    for (var i=0; i<xmlVersions.length; i++)
    {
        try
        {
            oXmlDom = new ActiveXObject(xmlVersions[i]);
            oXmlDom.async=false;
            oXmlDom.load(fileRoute);
        }
        catch (e) 
        {
            //alert(e.message);
        }  
    }

   // throw new Error("当前系统未安装 MSXML！");
	} 
	else if (document.implementation && document.implementation.createDocument){
        var xmlhttp = new window.XMLHttpRequest();
        xmlhttp.open("GET",fileRoute,false);
        xmlhttp.send(null);
        oXmlDom = xmlhttp.responseXML.documentElement; 
    }
    else {
	      oXmlDom=null;
	      alert("您的浏览器尚不支持xml解析，请下载xml解析包或者安装新的浏览器！");
	}
	return oXmlDom;
}

//生成xmlDom
function getXmlDom(strXML) {
   		var xmlDom;
		
        if (window.ActiveXObject) { //IE
			
			try {
				xmlDom = new ActiveXObject("Microsoft.XMLDOM");
				//xmlDom = new ActiveXObject("Msxml2.DOMDocument");
				if(!xmlDom) xmlDom = new ActiveXObject("MSXML2.DOMDocument.3.0");
				xmlDom.loadXML(strXML);
				return xmlDom;
			} catch(e){}
        }
		else if(window.XMLHttpRequest) { //FF
			var oParser = new DOMParser();
			xmlDom = oParser.parseFromString(strXML,"text/xml");

			if (xmlDom.documentElement.tagName == "parsererror") {

				var oSerializer = new XMLSerializer();

				alert("An error occurred:\n错误代码: " + oSerializer.serializeToString(oXmlDom.documentElement));
			}
			else {
				return xmlDom;
			}
        }
   }

//取第一个，然后和剩余的相比，取最大的。
function getMaxDate() {
	var data = getXmlDom(strXML);
	

	var maxDate;
	var temp;

	var fund = data.getElementsByTagName("Fund-Date");
	
	maxDate = fund[0].childNodes[0].nodeValue;

        for(var i=1; i<fund.length; i++) {
	    temp = fund[i].childNodes[0].nodeValue;
		if(temp > maxDate) {
			maxDate = temp;
		}
	}
	document.getElementById('date_1').innerHTML = maxDate;
	document.getElementById('date_2').innerHTML = maxDate;
	document.getElementById('date_3').innerHTML = maxDate;
	document.getElementById('date_4').innerHTML = maxDate;
	document.getElementById('date_5').innerHTML = maxDate;
	document.getElementById('date_6').innerHTML = maxDate;
	document.getElementById('date_7').innerHTML = maxDate;

}
function getFundMesgByName(fundName){
    for(var i=0;i<FundsMappingArray.length;i++){
	    if(fundName==$.trim(FundsMappingArray[i][0]))  return FundsMappingArray[i];  
	}
		    
	return new Array();
}
function getRiseFallStyle(data){
   if(data!=null&&data!="")
   return ($.trim(data)).substring(0,1)=="-" ? "btnGlobalGreen":"btnGlobalRed";
   else return "";
}
function checkNum(currBox,boxClass,maxSelected){
	var iMaxSelected = maxSelected; //设置最大允许选择的数量，可根据需要变动。 
	var iNumChecked = 0; //声明一个变量，用于存放已选的数量。 
	var allboxes=$("."+boxClass);
	docheck(currBox,allboxes,iMaxSelected);
}

function docheck(ctrl,allboxes,iMaxSelected) { //控制选择数量的函数。 

iNumChecked = 0; //统计数归零。 
 
for(var i=0;i<allboxes.length&&iNumChecked<=iMaxSelected;i++){ //循环检测已选中的复选框数量。 
  if ((allboxes[i].checked)) { //如果已被选中，则计算器加1。 
      iNumChecked++; 
	 // alert(iNumChecked);
   }   
  
}
if (iNumChecked > iMaxSelected) { // 检查是否已超过了最大选择数量； 
ctrl.checked = false; 
//如果已超过允许的最大选择数量，则取消增加的选择并弹出提示窗口。 
alert("您最多只能选择"+iMaxSelected+"支基金进行组合！");

} 
}

//xmlData：加载进来的xml数据
//divData：将相应类型的基金添加到哪个div中
//fundType：基金类型
//checkName:类型相同的一组基金的checkbox class
//maxNum:允许组合的基金的最大个数
function loadFundsData(xmlData,divData,fundType,checkClass,maxNum){

         
		 $(xmlData).find("Fund").each(function(){
		 
		 var currFund=$.trim($(this).find("Fund-Name").text());
		 var fundMesg=getFundMesgByName(currFund);
		 if(fundMesg[1]==fundType||(fundMesg[1]!=fundType&&fundType==$.trim("全部"))){
			 if(fundMesg[1]!=$.trim("货币型")){
				var str_temp="";  
				var fundName=$(this).find("Fund-Name").text();
				var todayWaver=$(this).find("Today-Waver").text();
				var startToNow=$(this).find("Issue-To-Today").text();
				str_temp+="<table width='910' border='0' align='center' cellpadding='0' cellspacing='0' style='background:#F2F2F2; border-bottom:#C9C9C9 dotted 1px;'>"
				str_temp+="<tr>"
				str_temp+="<td width='4%' height='35' align='center'><input type='checkbox' class='"+checkClass+"' value='"+$(this).find("Fund-Code").text()+"' fundname='" + fundName + "' onclick=\"checkNum(this,'"+checkClass+"','"+maxNum+"')\"></td>"
				str_temp+="<td width='11%' align='center' name='"+fundName+"'><a href='"+fundMesg[2]+"' class='Blue' target='_blank'>"+fundName+"</a></td>"
				str_temp+="<td width='10%' align='center'>"+$(this).find("Net-Value").text()+"&nbsp;<a href='"+fundMesg[2]+"?shownetvalue' class='Blue' target='_blank'><img src='../../images/i_9.gif' border=0></a></td>"
				str_temp+="<td width='8%' align='center'>"+$(this).find("Total-Net-Value").text()+"</td>"
				str_temp+="<td width='10%' align='center'>"+$(this).find("Fund-Date").text()+"</td>"
				str_temp+="<td width='7%' align='center' class='"+getRiseFallStyle(todayWaver)+"' name='"+todayWaver+"'>"+todayWaver+"</td>"
				str_temp+="<td width='6%' align='center'><span class='"+getRiseFallStyle($(this).find("Lately7-Waver").text())+"'>"+$(this).find("Lately7-Waver").text()+"</span></td>"
				str_temp+="<td width='6%' align='center'><span class='"+getRiseFallStyle($(this).find("Lately30-Waver").text())+"'>"+$(this).find("Lately30-Waver").text()+"</span></td>"
				str_temp+="<td width='6%' align='center'><span class='"+getRiseFallStyle($(this).find("Lately120-Waver").text())+"'>"+$(this).find("Lately120-Waver").text()+"</span></td>"
				str_temp+="<td width='6%' align='center'><span class='"+getRiseFallStyle($(this).find("Lately180-Waver").text())+"'>"+$(this).find("Lately180-Waver").text()+"</span></td>"
				str_temp+="<td width='6%' align='center'><span class='"+getRiseFallStyle($(this).find("Lately360-Waver").text())+"'>"+$(this).find("Lately360-Waver").text()+"</span></td>"
				str_temp+="<td width='6%' align='center'><span class='"+getRiseFallStyle($(this).find("StartYear-To-Now").text())+"'>"+$(this).find("StartYear-To-Now").text()+"</span></td>"
				str_temp+="<td width='8%' align='center' name='"+startToNow+"'><span class='"+getRiseFallStyle(startToNow)+"'>"+startToNow+"</span></td>"
				str_temp+="<td width='' align='center'>"+$(this).find("Fund-State").text()+"</td></tr></table>";
			    if(fundType==$.trim("全部")) $(divData.split(";")[0]).append(str_temp);
                else $(divData).append(str_temp);
		      }else{
				var s_temp="";  
				var fundName=$(this).find("Fund-Name").text();
				//alert(fundMesg[0]+":"+fundMesg[1])
				s_temp+="<table width='910' border='0' align='center' cellpadding='0' cellspacing='0' style='background:#F2F2F2; border-bottom:#C9C9C9 dotted 1px;'>";
				s_temp+="<tr><td width='4%' height='35' align='center'></td>"
				s_temp+="<td width='11%' align='center' name='"+fundName+"'><a href='"+fundMesg[2]+"' class='Blue' target='_blank'>"+fundName+"</a></td>";
				s_temp+="<td width='40%' align='center'>"+$(this).find("PreMyriad-Yield").text()+"&nbsp;<a href='"+fundMesg[2]+"?shownetvalue' class='Blue' target='_blank'><img src='../../images/i_9.gif' border='0'></a></td>";
				s_temp+="<td align='center'>"+$(this).find("Lately7-Waver").text()+"</td>";
				s_temp+="<td width='6%' align='center'>"+$(this).find("Fund-State").text()+"</td></tr>";
				s_temp+="</table>";
				if(fundType==$.trim("全部")) $(divData.split(";")[1]).append(s_temp);
                else $(divData).append(s_temp);
			  }
		 }	 
		});
}

//点击基金名称是改变顺序
function s_order(objid){
	var len=$(objid).find("table").length;
alert(1);
	var objArr=new Array(len);

	for(var i=0;i<len;i++){
		objArr[i]=$(objid).find("table")[i];
	}
	objArr=objArr.reverse();
	$(objid).empty();
	for(var j=0;j<len;j++){
		//alert(objArr[j]);
		$(objid).append(objArr[j]);
	}
}
//获取选中的一组基金的基金代码，进行组合分析或添加到观察站
function toFundsPage(pageUrl){
  
   var selectArray=new Array();
   var codeStr="";
  // var fundCodes=new Array();
  // var j=0;
   for(var fundIndex=0;fundIndex<6;fundIndex++){
     
	    var currClass=$("#ctd_"+fundIndex).attr("class"); 
		if(currClass=="i_cur"){  //获取当前所在的选项卡
		  var currTypeString=$.trim($("#ctd_"+fundIndex).text());
		   if(currTypeString=="全　部"){   //判断是那一支基金，从而获取该基金的基金代码
		    //alert(currTypeString);
			 selectArray=$(".type0");
		   }else if(currTypeString=="股票型"){
			 selectArray=$(".type1");
		   }else if(currTypeString=="债券型"){
			 selectArray=$(".type2");
		   }else if(currTypeString=="混合型"){
			 selectArray=$(".type3"); 
		   }else if(currTypeString=="货币型"){
			 selectArray=$(".type4");
		   }else if(currTypeString=="QDII"){
			 selectArray=$(".type5");
		   }
		   /*
		   for(var codeIndex=0;codeIndex<selectArray.length;codeIndex++){
		       if(selectArray[codeIndex].checked)  
			   fundCodes[j++]=selectArray[codeIndex].value;  
			}
			*/
			for(var codeIndex=0;codeIndex<selectArray.length;codeIndex++){
			   if(selectArray[codeIndex].checked){  
			       codeStr+=selectArray[codeIndex].value+",";  
			    }
			}
			if(codeStr==null||codeStr==""){
				alert("请选择基金，您最多可以选择5支基金！");
				return false;
			  }
			$("#fundParms").html("<input type='hidden' id='funds' name='funds' value='"+codeStr+"'/>" + "<input type='hidden' id='fundcode' name='fundcode' value='"+codeStr+"'/>");
			//alert(codeStr);
			//alert($("#funds").val());
			break;
			
		}
	}
	
	//window.location.href=pageUrl+"?fundCodes="+codeStr;
	//document.fundForm.target="_blank";
    document.fundForm.action=pageUrl; 
    document.fundForm.submit();
}

//获取选中的一组基金的基金代码，进行组合分析或添加到观察站，以分号隔开
function getFundCodes(){
  
   var selectArray=new Array();
   var codeStr="";
   for(var fundIndex=0;fundIndex<6;fundIndex++){
	    var currClass=$("#ctd_"+fundIndex).attr("class"); 
		if(currClass=="i_cur"){  //获取当前所在的选项卡
			var currTypeString=$.trim($("#ctd_"+fundIndex).text());
			if(currTypeString=="全　部"){   //判断是那一支基金，从而获取该基金的基金代码
				selectArray=$(".type0");
			}else if(currTypeString=="股票型"){
				selectArray=$(".type1");
			}else if(currTypeString=="债券型"){
				selectArray=$(".type2");
			}else if(currTypeString=="混合型"){
				selectArray=$(".type3"); 
			}else if(currTypeString=="货币型"){
				selectArray=$(".type4");
			}else if(currTypeString=="QDII"){
				selectArray=$(".type5");
			}
			for(var codeIndex=0;codeIndex<selectArray.length;codeIndex++){
			   if(selectArray[codeIndex].checked){  
				   codeStr+=selectArray[codeIndex].value+";";  
				}
			}
			if(codeStr==null||codeStr==""){
				alert("请选择基金，您最多可以选择5支基金！");
				return false;
			}
			break;
		}
	}
	return codeStr;
}
//获取选中的一组基金的基金代码，进行组合分析,获取基金代码一逗号隔开
function getFundCodesDH(){
   var selectArray=new Array();
   var codeStr="";
   for(var fundIndex=0;fundIndex<6;fundIndex++){
	    var currClass=$("#ctd_"+fundIndex).attr("class"); 
		if(currClass=="i_cur"){  //获取当前所在的选项卡
			var currTypeString=$.trim($("#ctd_"+fundIndex).text());
			if(currTypeString=="全　部"){   //判断是那一支基金，从而获取该基金的基金代码
				selectArray=$(".type0");
			}else if(currTypeString=="股票型"){
				selectArray=$(".type1");
			}else if(currTypeString=="债券型"){
				selectArray=$(".type2");
			}else if(currTypeString=="混合型"){
				selectArray=$(".type3"); 
			}else if(currTypeString=="货币型"){
				selectArray=$(".type4");
			}else if(currTypeString=="QDII"){
				selectArray=$(".type5");
			}
			for(var codeIndex=0;codeIndex<selectArray.length;codeIndex++){
			   if(selectArray[codeIndex].checked){  
				   codeStr+=selectArray[codeIndex].value+",";  
				}
			}
			if(codeStr==null||codeStr==""){
				alert("请选择基金，您最多可以选择5支基金！");
				return false;
			}
			break;
		}
	}
	return codeStr;
}
//获取选中的一组基金的基金代码，进行组合分析或添加到观察站
function getFundNames(){
   var selectArray=new Array();
   var codeStr="";
   for(var fundIndex=0;fundIndex<6;fundIndex++){
	    var currClass=$("#ctd_"+fundIndex).attr("class"); 
		if(currClass=="i_cur"){  //获取当前所在的选项卡
			var currTypeString=$.trim($("#ctd_"+fundIndex).text());
			if(currTypeString=="全　部"){   //判断是那一支基金，从而获取该基金的基金代码
				selectArray=$(".type0");
			}else if(currTypeString=="股票型"){
				selectArray=$(".type1");
			}else if(currTypeString=="债券型"){
				selectArray=$(".type2");
			}else if(currTypeString=="混合型"){
				selectArray=$(".type3"); 
			}else if(currTypeString=="货币型"){
				selectArray=$(".type4");
			}else if(currTypeString=="QDII"){
				selectArray=$(".type5");
			}
			for(var codeIndex=0;codeIndex<selectArray.length;codeIndex++){
			   if(selectArray[codeIndex].checked){  
				   codeStr+=selectArray[codeIndex].attributes["fundname"].nodeValue+",";  
				}
			}
			if(codeStr==null||codeStr==""){
				alert("请选择基金，您最多可以选择5支基金！");
				return false;
			}
			break;
		}
	}
	return encodeURI(encodeURI(codeStr));
}

function show_value() {
//调用loadXML加载相应块区的基金数据。
var data = getXmlDom(strXML);

loadFundsData(data,"#sdata1;#sdata2","全部","type0",5)
loadFundsData(data,"#tab1_sdata","股票型","type1",5);
loadFundsData(data,"#tab2_sdata","债券型","type2",5);
loadFundsData(data,"#tab3_sdata","混合型","type3",5);
loadFundsData(data,"#tab4_sdata","货币型","type4",5);
loadFundsData(data,"#tab5_sdata","QDII","type5",5);
getMaxDate();
}

var introXml=loadXml(dataSource);

 $(introXml).find("Fund").each(function(i){
   FundsMappingArray[i]=new Array();
   FundsMappingArray[i][0]=$.trim($(this).find("Fund-Name").text());
   FundsMappingArray[i][1]=$.trim($(this).attr("type"));
   FundsMappingArray[i][2]=$.trim($(this).find("Fund-Url").text());
 
 });

 var sortType="desc"; //默认为desc 

 function sortData(objId,sortIndex,type){
	var len=$(objId).find("table").length;
	//alert(sortIndex);
	var objArr=new Array(len);

	for(var i=0;i<len;i++){
		objArr[i]=$(objId).find("table")[i];
	}

    if(type) sortType=type;
	objArr.sort( function compares(a,b) {	 
		return compareArrayElement(a,b,sortIndex,sortType); });
     
	  if(!type){
	        sortType=(sortType=="desc"? "asc":"desc");
          }
	
	$(objId).empty();
	for(var j=0;j<len;j++){
		$(objId).append(objArr[j]);
	}
}	
	  
function compareArrayElement(nodeOne,nodeTwo,colsIndex,sortType) {
    
	var idOne=$.trim((nodeOne.getElementsByTagName('td')[colsIndex]).getAttribute("name"));//默认string类型
	if(idOne.search("^-?\\d+$")==0){//整数类型	   
        idOne=parseInt($.trim(idOne));
    }else if(idOne.search("^-?\\d+(\\.\\d+)?$")==0){//数字类型  
		idOne=parseFloat(idOne);
    }else if(idOne.search("^(((\\+|-)?(0|(0\\.\\d+)))|((\\+|-)?[1-9]\\d*(\\.\\d+)?))[%]$")==0){ //百分比类型
	    idOne=parseFloat(idOne); //将百分比转换成float型（直接去除百分号）
	}
	
    var idTwo=$.trim((nodeTwo.getElementsByTagName('td')[colsIndex]).getAttribute("name"));//默认string类型
	 if(idTwo.search("^-?\\d+$")==0){//整数类型
        idTwo=parseInt($.trim(idTwo));
    }else if(idTwo.search("^-?\\d+(\\.\\d+)?$")==0){//数字类型
        idTwo=parseFloat($.trim(idTwo));
    }else if(idTwo.search("^(((\\+|-)?(0|(0\\.\\d+)))|((\\+|-)?[1-9]\\d*(\\.\\d+)?))[%]$")==0){ //百分比类型
	    idTwo=parseFloat(idTwo); //将百分比转换成float型（直接去除百分号）
	}
	var nReturn=0;

	if(sortType == "asc") {
		if(idOne<idTwo) {
			nReturn = -1;//-1表示不必调换相邻两个元素的顺序。
		}else if(idOne>idTwo){
			nReturn = 1;//1表示要调换相邻两个元素的顺序。
		}else{
		    nReturn=0; //0如果两个元素相等，不改变它们的顺序，保证排序的稳定性。
		}

	  } else {
		if(idOne<idTwo) {
			nReturn = 1;
		}else if(idOne>idTwo){
			nReturn = -1;
		}else{
		    nReturn=0;
		}		
	
	}
	//alert("idOne: "+idOne+" idTwo: "+idTwo+" \r\n result: "+nReturn);
	return nReturn;
}
//载入净值
//调用loadXML加载相应块区的基金数据。
function loadNetValue(){
   try{
	var data = getXmlDom(strXML);
	$(data).find("Fund").each(function(){
		var fundName = $.trim($(this).find("Fund-Name").text());
		var netValue = $(this).find("Net-Value").text();//单位净值
		var totalNetValue = $(this).find("Total-Net-Value").text();//累计净值
		var fundDate = $(this).find("Fund-Date").text();//净值日期
		var todayWaver = $(this).find("Today-Waver").text();//日涨跌
		var fundState = $(this).find("Fund-State").text();//状态
		var lately7Waver = $(this).find("Lately7-Waver").text();//货币基金七日7日年化收益率
		var preMyriadYield = $(this).find("PreMyriad-Yield").text();//货币基金每万份收益
		if(fundName == "上投货币" || fundName == "上投货币A" || fundName == "上投货币B"){
			if(document.getElementById(fundName + "-lately7Waver") != null)
				document.getElementById(fundName + "-lately7Waver").innerHTML = lately7Waver;
			if(document.getElementById(fundName + "-preMyriadYield") != null)
				document.getElementById(fundName + "-preMyriadYield").innerHTML = preMyriadYield;
			if(document.getElementById(fundName + "-fundState") != null)
				document.getElementById(fundName + "-fundState").innerHTML = "正常开放";
		}else{
			if(document.getElementById(fundName + "-netValue") != null)
				document.getElementById(fundName + "-netValue").innerHTML = netValue;
			if(document.getElementById(fundName + "-totalNetValue") != null)
				document.getElementById(fundName + "-totalNetValue").innerHTML = totalNetValue;
			if(document.getElementById(fundName + "-fundDate") != null)
				document.getElementById(fundName + "-fundDate").innerHTML = fundDate;
			if(document.getElementById(fundName + "-todayWaver") != null){
				document.getElementById(fundName + "-todayWaver").innerHTML = todayWaver;
				document.getElementById(fundName + "-todayWaver").setAttribute("class", getRiseFallStyle(todayWaver));
				document.getElementById(fundName + "-todayWaver").setAttribute("className", getRiseFallStyle(todayWaver));
			}
			if(document.getElementById(fundName + "-fundState") != null)
				document.getElementById(fundName + "-fundState").innerHTML = fundState;
		}
	});
   }catch(e){}
}
