// helper for registering multiple window.onload handlers on top of each other
function doubleDelegate(func1, func2) {
    return function() {
        if (func1) func1();
        if (func2) func2();
    }
}
        
CQTeaser = {
    load: function(url, elementID) {
        // ajax variant
        var xhr; 
        try {
            xhr = new ActiveXObject('Msxml2.XMLHTTP');
        } catch (e) {
            try {
                xhr = new ActiveXObject('Microsoft.XMLHTTP');
            } catch (e2) {
                try {
                    xhr = new XMLHttpRequest();
                } catch (e3) {
                    xhr = false;
                }
            }
        }
  
        xhr.onreadystatechange = function() { 
            // todo: javascript that checks on empty content
            if (xhr.readyState == 4 && xhr.status == 200) {
                document.getElementById(elementID).innerHTML = xhr.responseText;
            }
        }; 

       xhr.open("GET", url, true); 
       xhr.send(null); 
    },

    loadPersonalizedTeaser: function(path, elementID) {
        // append tags to url
        if (window.clickstreamcloud) {
            if (window.clickstreamcloud.tags) {
                var tags = window.clickstreamcloud.tags;
            
                // sort by count, extract 3 top most tags
                var tagArray = [];
                window.clickstreamcloud.each(function(tag, count) {
                    tagArray.push(tag);
                });
                // sort tags descending by their count (ie. top most use tags at the beginning of the array)
                tagArray.sort(function(a,b) {
                    var countA = window.clickstreamcloud.tags[a];
                    var countB = window.clickstreamcloud.tags[b];
                    if (countA > countB) {
                        return -1;
                    }
                    if (countA < countB) {
                        return 1;
                    }
                    return 0;
                });
                // extract top 3 tags
                for (var i=0; (i < 3) && (i < tagArray.length); i++) {
                    var tagSelector = tagArray[i];
                    tagSelector = tagSelector.replace("/", "__", "g"); // encode subtag divider "/"
                    tagSelector = tagSelector.replace(":", "___", "g"); // encode namespace divider ":"
                    // encode tags into valid URI parts
                    path += encodeURI(tagSelector) + ".";
                }
    
		        path += "html";
		        CQTeaser.load(path, elementID);
            }
        }
    }
}   
