﻿var divTagId;
var xml;
var xsl;

var xmlOutput;

function loadXMLDoc(fname) {

    var xmlDoc;
    // code for IE
    if (window.ActiveXObject) {
        xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.async = false;
        xmlDoc.load(fname);
    }
    // code for Mozilla, Firefox, Opera, etc.
    else if (document.implementation && document.implementation.createDocument) {
    try {       
            xmlDoc = document.implementation.createDocument("", "", null);
            xmlDoc.async = false;
            xmlDoc.load(fname);            
        }
        catch (e) {
            var xmlhttp = new window.XMLHttpRequest();
            xmlhttp.open("GET", fname, false);
            xmlhttp.send(null);
            xmlDoc = xmlhttp.responseXML.documentElement;
        }
    }    
    else {
        alert('Your browser cannot handle this script');
    }    
    return (xmlDoc);
}

function insertTable() {

//    tbl = document.createElement('table');
//    tbl.style.width = "100%";
////    tbl.style.height = "100%";
//    tbl.style.background = 'transparent';
//    var row = tbl.insertRow(0);
//    var cl = row.insertCell(0);

////    cl.style.padding = "10px";
////    cl.style.align = "justify";

    oTableContainer = document.getElementById(divTagId);
//    oTableContainer.appendChild(tbl);

   
    var doc = xmlOutput.documentElement; //.selectNodes('Project');
   

    if (doc.hasChildNodes()) {
        var itemElements = doc.getElementsByTagName("Project")        
        var max = parseInt(itemElements.item(0).getAttribute("Num"));       
        var min = parseInt(itemElements.item(0).getAttribute("Num"));
        for (var i = 1; i < itemElements.length; i++) {
            {
                var tmp = parseInt(itemElements.item(i).getAttribute("Num"));
                if (max < tmp)
                    max = tmp;
                if (min > tmp)
                    min = tmp;
            }
        }

        var minFontSize = 11;
        var maxFontSize = 32;
        var diff = max - min;
        var offset = parseInt((maxFontSize - minFontSize) / diff);
        var htmlString = '';

        for (var i = 0; i < itemElements.length; i++) {
            {
                var tmp = parseInt(itemElements.item(i).getAttribute("Num"));
                var fontSize = minFontSize + ((tmp - min) * offset);
                htmlString += '<a href="' + itemElements.item(i).getAttribute("url") + '" style="font-size: ' + fontSize + 'px; font-family: Arial, Tahoma, Verdana, Helvetica, sans-serif; line-height: ' + (minFontSize + (diff * offset)) + 'px;"> ' +  itemElements.item(i).getAttribute("type") + '</a>&nbsp;';
            } //text-decoration:none;
        }
       
        oTableContainer.innerHTML = htmlString;
       // alert(oTableContainer.innerHTML);
    }
}

function displayResult(divTagIdArg, xmlArg, xslArg) {


    
    divTagId = divTagIdArg;

    xml = loadXMLDoc(xmlArg);
    xsl = loadXMLDoc(xslArg);
    //var xmlSerializer1 = new XMLSerializer();
    
    // code for IE
    if (window.ActiveXObject) {
        xmlOutput = new ActiveXObject("Microsoft.XMLDOM");
        xmlOutput.async = "false";
        xmlOutput.loadXML(xml.transformNode(xsl));
    }
    // code for Mozilla, Firefox, Opera, etc.
    else if (document.implementation && document.implementation.createDocument) {
        xsltProcessor = new XSLTProcessor();
        xsltProcessor.importStylesheet(xsl);
        resultDocument = xsltProcessor.transformToDocument(xml, document);
        var xmlSerializer = new XMLSerializer();
        parser = new DOMParser();
        xmlOutput = parser.parseFromString(xmlSerializer.serializeToString(resultDocument), "text/xml");
    }
    insertTable();
}

