﻿
var strLastDate="";
var strLastValue="";
var strLastDist="";
var otherXHR = false;

function getXhr(){
    var xhr = null; 
	if(window.XMLHttpRequest) { // Firefox et autres
	       xhr = new XMLHttpRequest(); 
	       otherXHR = true;
    }
	else if(window.ActiveXObject){ // Internet Explorer 
	   try {
              xhr = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
              xhr = new ActiveXObject("Microsoft.XMLHTTP");
            }
	}
	else { // XMLHttpRequest non supporté par le navigateur 
	   xhr = false; 
	} 
    return xhr
}

function getData(){
	var xhr = getXhr()
	
	xhr.onreadystatechange = function(){ 
		if(xhr.readyState == 4 && xhr.status == 200){
			createTable(xhr.responseXML)
		}
	}
	xhr.open("GET","/sites/fiera/xml/hitfund.xml",true);
	xhr.send(null);
}

function createOtherTable(respXml) {

    var strTable = "";
    var root = respXml.documentElement; 
    var items = root.getElementsByTagName("data"); 
    
    if(items.length > 0) {
    

        strTable = createTableHeader(sLang);
        
        for (i=0;i<items.length;i++) {
          
            
            var strDate = items[i].getElementsByTagName("date")[0].firstChild.data;
            var strValue = items[i].getElementsByTagName("navps")[0].firstChild.data;
            var strDist = items[i].getElementsByTagName("distribution")[0].firstChild.data;


            if (i==0) { 
                strLastDate= strDate;
                strLastValue= strValue;
                strLastDist= strDist;
            }


            strTable += createTableLine(sLang,i+1,strDate,strValue, strDist);
 
                
        }
    }
    
      try 
        {
            var dt = document.getElementById("divDataTable");
            dt.innerHTML = strTable;
        }
        catch (ex) {}
        
        try 
        {
        document.getElementById("lastDate").innerHTML = formatDate(sLang,strLastDate);
        document.getElementById("lastValue").innerHTML = formatValue(sLang,strLastValue);
        document.getElementById("lastDist").innerHTML = formatValue(sLang,strLastDist);
        }
      	catch (ex) {}
    
}

function createTable(respXml)
{
    if(otherXHR) {
        createOtherTable(respXml);
        return;
    }

    var strTable = "";
    var root = respXml.documentElement; 
    var items = root.selectNodes("/hitfund/data"); 
    
    if (items.length > 0)
    {
        // create table header
        strTable = createTableHeader(sLang);
        
        for (var i = 0; i<items.length;i++)
        {   
        
            //create line items
            var item = items[i];
            var strDate = item.selectSingleNode("./date/text()").nodeValue;
            var strValue = item.selectSingleNode("./navps/text()").nodeValue;
            var strDist = item.selectSingleNode("./distribution/text()").nodeValue;

            if (i==0) { 
                strLastDate= strDate;
                strLastValue= strValue;
                strLastDist= strDist;
            }
            
            strTable += createTableLine(sLang,i+1,strDate,strValue, strDist);
        } 
    
        try 
        {
            var dt = document.getElementById("divDataTable");
            dt.innerHTML = strTable;
        }
        catch (ex) {}
        
        try 
        {
        document.getElementById("lastDate").innerHTML = formatDate(sLang,strLastDate);
        document.getElementById("lastValue").innerHTML = formatValue(sLang,strLastValue);
        document.getElementById("lastDist").innerHTML = formatValue(sLang,strLastDist);
        }
      	catch (ex) {}
    }
}

function createTableHeader(strLang)
{
    var strHeader = "";
   
    strHeader = "<table width='100%' border='0' cellspacing='0' cellpadding='0'><tr><td align='left' valign='top' class='tabsoustitre'>" ;    strHeader += "No.</td><td align='left' valign='top' class='tabsoustitre'>Date</td>" ;        if (strLang=="en")    {        strHeader += "<td align='left' valign='top' class='tabsoustitre'>NAVPS</td>";    }    else    {        strHeader += "<td align='left' valign='top' class='tabsoustitre'>Valeur liquidative par part</td>";    }    strHeader +="<td align='left' valign='top' class='tabsoustitre'>Distribution</td></tr>" ;    strHeader += "<tr><td colspan='4' align='left' valign='top' background='/sites/fiera/images/img-gen/hi-ligne-tab.gif'><img src='/sites/fiera/images/img-gen/hi-ligne-tab.gif' alt='' height='3' width='200' border='0'></td></tr>" ;
   
    return strHeader; 
}

function createTableLine(strLang, iCount, strDate, strValue, strDist )
{
    try {
    var strLine ="";
    
    strLine = "<tr><td align='left' valign='top' class='tabtexte'>" + iCount + "</td>" ;    strLine += "<td align='left' valign='top' class='tabtexte'>" + formatDate(strLang,strDate) + "</td>" ;    strLine	+= "<td align='left' valign='top' class='tabtexte'>" + formatValue(strLang,strValue) + "</td>" ;    strLine	+= "<td align='left' valign='top' class='tabtexte'>" + formatValue(strLang,strDist) + "</td></tr>";    strLine	+= "<tr><td colspan='4' align='left' valign='top' background='/sites/fiera/images/img-gen/hi-ligne-tab.gif'><img src='/sites/fiera/images/img-gen/hi-ligne-tab.gif' alt='' height='3' width='200' border='0'></td></tr>"
    }
    catch(e) {alert(e.message)}

    return strLine;                    
}

function formatDate(strLang, strDate)
{
    var strD = ""
    var a = strDate.toString().split("-");
    var yr = a[0];
    var mn = a[1];
    var dd = a[2];

		var strMonthFR = ["janv.","févr.","mars","avril","mai","juin","juill.","août","sept.","oct.","nov.","déc." ];
    var strMonthEN = ["Jan.","Feb.","Mar.","Apr.","May","June","July","Aug.","Sept.","Oct.","Nov.","Dec." ];

    var iMn = mn * 1 -1 ;
    
    if (strLang=="fr")
    {
        strD = dd + " " + strMonthFR[iMn] + " " + yr;
    }
    else
    {
        strD = strMonthEN[iMn] + " " + dd + ", " + yr;
    }

    return strD;
}

function formatValue(strLang, strValue)
{
    var strFormattedValue = strValue;

    if (strLang=="fr")
    {
        strFormattedValue = strValue.replace(".",",") + " $";
    }
    else
    {
        strFormattedValue = "$" + strValue;
    }
               
    return strFormattedValue;
}


