
//解析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;
}

 //从js变量中解析xml文件。
   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 getNodeValue(nodeName, currIndex)
{
    var retval = "";
    try{
    var value = xmlDoc.getElementsByTagName(nodeName)[currIndex].childNodes[0];
    if(value) retval=value.nodeValue;
	}catch(e){}
    
	return retval;
}

function checkNum(currBox,boxName,maxSelected){
var iMaxSelected = maxSelected; //设置最大允许选择的数量，可根据需要变动。 
var iNumChecked = 0; //声明一个变量，用于存放已选的数量。 
var allboxes=document.getElementsByName(boxName);
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+"支基金进行组合！");

} 
}
function getUnitValueByName(fundName){
    for(var i=0;i<fundNameArray.length;i++){
	    if(fundName==fundNameArray[i].replace(/(^ *)|( *$)/g, ""))  return unitValueArray[i]; 
		
	}
	return "- -";
}
		    
function  getFundDivContent(currIndex,fundType,maxSelected){
	
      var fundContent="";
      var fundCode=getNodeValue("Fund-Code",currIndex);
	  var fundName=getNodeValue("Fund-Name",currIndex);
	  var fundDate=getNodeValue("Fund-Date",currIndex);
	  fundContent+='<tr>';
	  fundContent+='<td align="center" ><input type="checkbox" name="'+fundType+'" value="'+fundCode+'" onclick=\'checkNum(this,"'+fundType+'","'+maxSelected+'")\' fundname="' + fundName + '"></td>';
	  fundContent+='<td align="center" name="'+fundName+'" ><a href="'+getNodeValue("Fund-Url",currIndex)+'" class="Blue" target="_blank">'+fundName+'</a></td>';
	  fundContent+='<td align="center" name="'+fundCode+'">'+fundCode+'</td>';
	  fundContent+='<td align="center" name="'+fundDate+'">'+fundDate+'</td>';
	  fundContent+='<td align="center">'+getNodeValue("Risk-Degree",currIndex)+'</td>';
	  fundContent+='<td align="center">'+getNodeValue("Fund-Manager",currIndex)+'</td>';
	  fundContent+='<td style=" line-height:120%; padding:5px 0;">'+getNodeValue("Fund-Range",currIndex)+'</td>';
	  fundContent+='<td style=" line-height:120%;padding:9px 0;">'+getNodeValue("Performance-Benchmark",currIndex)+'</td>';
	  fundContent+='<td align="center" >'+getUnitValueByName(fundName)+'<a href="'+getNodeValue("Fund-Url",currIndex)+'?shownetvalue" class="Blue" target="_blank"><img src="../../images/i_9.gif" border="0"></a></td>';
	  fundContent+='<td align="center" ><img src="../../images/zoom.gif" alt="' + getNodeValue('Investment-Objectives',currIndex) + '" border="0"></a></td></tr>';

	  return fundContent;
      

}

function getFundType(){
    // var  fundType="";
      var  type1Con="";
      var  type2Con="";
      var  type3Con="";
      var  type4Con="";
      var  type5Con="";
      var  allTypeCon="";
    for(var i=0;i<fundItems.length;i++){
     
      allTypeCon+=getFundDivContent(i,"alltype",5);
      fundType=fundItems[i].getAttribute("type");
      if(fundType&& fundType==$.trim("股票型")){
		 type1Con+=getFundDivContent(i,"type1",5);
     
	  }else if(fundType&& fundType==$.trim("债券型")){
          type2Con+=getFundDivContent(i,"type2",5);
     
	  }else if(fundType&& fundType==$.trim("混合型")){
          type3Con+=getFundDivContent(i,"type3",5);
      
	  }else if(fundType&& fundType==$.trim("货币型")){
           type4Con+=getFundDivContent(i,"type4",5);
      
	  }else if(fundType&& fundType==$.trim("QDII")){
           type5Con+=getFundDivContent(i,"type5",5);
      }

    }
   
  	
    $("#fundData_0").html(allTypeCon);
	$("#fundData_1").html(type1Con);
	$("#fundData_2").html(type2Con);
	$("#fundData_3").html(type3Con);
	$("#fundData_4").html(type4Con);
    $("#fundData_5").html(type5Con);
}

function toFundsPage(pageUrl){
  
   var selectArray=new Array();
   var codeStr="";
  // var fundCodes=new Array();
  // var j=0;
   for(var fundIndex=0;fundIndex<6;fundIndex++){
    
	    var currType=document.getElementById("ctd_"+fundIndex); 
		if(currType.className=="i_cur"){  //获取当前所在的选项卡
		   var currTypeString=currType.innerHTML.replace(/(^ *)|( *$)/g, "");
		   //alert(currTypeString);
		   if(currTypeString=="全　部"){   //判断是那一支基金，从而获取该基金的基金代码
			 selectArray=document.getElementsByName("alltype");
		   }else if(currTypeString=="股票型"){
			 selectArray=document.getElementsByName("type1");  
		   }else if(currTypeString=="债券型"){
			 selectArray=document.getElementsByName("type2");  
		   }else if(currTypeString=="混合型"){
			 selectArray=document.getElementsByName("type3");  
		   }else if(currTypeString=="货币型"){
			 selectArray=document.getElementsByName("type4"); 
		   }else if(currTypeString=="QDII"){
			 selectArray=document.getElementsByName("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;
			  }
			document.getElementById("fundParms").innerHTML="<input type='hidden' id='funds' name='funds' value='"+codeStr+"'/>";
			//alert(codeStr);
			//alert(document.getElementById("funds").value);
			break;
			
		}
	}
	
	//window.location.href=pageUrl+"?fundCodes="+codeStr;
	//document.fundForm.target="_blank";
    document.fundForm.action=pageUrl; 
    document.fundForm.submit();
}

function getFundCodesFromShow(str){
   var selectArray=new Array();
   var codeStr="";
   for(var fundIndex=0;fundIndex<6;fundIndex++){
	    var currType=document.getElementById("ctd_"+fundIndex); 
		if(currType.className=="i_cur"){  //获取当前所在的选项卡
		   var currTypeString=currType.innerHTML.replace(/(^ *)|( *$)/g, "");
		   //alert(currTypeString);
		   if(currTypeString=="全　部"){   //判断是那一支基金，从而获取该基金的基金代码
			 selectArray=document.getElementsByName("alltype");
		   }else if(currTypeString=="股票型"){
			 selectArray=document.getElementsByName("type1");  
		   }else if(currTypeString=="债券型"){
			 selectArray=document.getElementsByName("type2");  
		   }else if(currTypeString=="混合型"){
			 selectArray=document.getElementsByName("type3");  
		   }else if(currTypeString=="货币型"){
			 selectArray=document.getElementsByName("type4"); 
		   }else if(currTypeString=="QDII"){
			 selectArray=document.getElementsByName("type5"); 
		   }
			for(var codeIndex=0;codeIndex<selectArray.length;codeIndex++){
			   if(selectArray[codeIndex].checked){  
			       codeStr+=selectArray[codeIndex].value+str;  
			    }
			}
			if(codeStr==null||codeStr==""){
				alert("请选择基金，您最多可以选择5支基金！");
				return false;
			}
			break;
			
		}
	}
    return codeStr;
}

function getFundNamesFromShow(){
   var selectArray=new Array();
   var codeStr="";
   for(var fundIndex=0;fundIndex<6;fundIndex++){
	    var currType=document.getElementById("ctd_"+fundIndex); 
		if(currType.className=="i_cur"){  //获取当前所在的选项卡
		   var currTypeString=currType.innerHTML.replace(/(^ *)|( *$)/g, "");
		   //alert(currTypeString);
		   if(currTypeString=="全　部"){   //判断是那一支基金，从而获取该基金的基金代码
			 selectArray=document.getElementsByName("alltype");
		   }else if(currTypeString=="股票型"){
			 selectArray=document.getElementsByName("type1");  
		   }else if(currTypeString=="债券型"){
			 selectArray=document.getElementsByName("type2");  
		   }else if(currTypeString=="混合型"){
			 selectArray=document.getElementsByName("type3");  
		   }else if(currTypeString=="货币型"){
			 selectArray=document.getElementsByName("type4"); 
		   }else if(currTypeString=="QDII"){
			 selectArray=document.getElementsByName("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));
}

  
    var xmlDoc = loadXml(dataSource);
	var netValue=getXmlDom(strXML);
	
    var fundItems = xmlDoc.getElementsByTagName("Fund");
	var netItems=netValue.getElementsByTagName("Fund");
    var fundNameArray=new Array();
	var unitValueArray=new Array();
	for(var j=0;j<netItems.length;j++){
	   
	  try{
	    fundNameArray[j]= netItems.item(j).getElementsByTagName("Fund-Name")[0].childNodes[0].nodeValue;
	  }catch(e){
	    fundNameArray[j]="- -";
	  }
       try{
	    unitValueArray[j]= netItems.item(j).getElementsByTagName("Net-Value")[0].childNodes[0].nodeValue;
	  }catch(e){
	    unitValueArray[j]="- -";
	  }
        
	}
	//alert(fundItems);

    var sortType="desc"; //默认为desc
    
	function sortData(objId,sortIndex,type){
	var len=$(objId).find("tr").length;
	var objArr=new Array(len);
    
	for(var i=0;i<len;i++){
		objArr[i]=$(objId).find("tr")[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);
    }
	
	
    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));
    }
	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;
}
