It looks like this is a web page, not a feed. I looked for a feed associated with this page, but couldn't find one. Please enter the address of your feed to validate.

Source: http://feeds.feedburner.com/QualityCollaboration

  1. <!DOCTYPE html>
  2. <html lang="en-US">
  3.  
  4. <head>
  5.    <title>IBM Bluefizz</title>
  6.  
  7.    <meta charset="utf-8" />
  8.  
  9.    <link rel="icon" href="//www.ibm.com/favicon.ico">
  10.    <link rel="canonical" href="https://bluefizz.com">
  11.    <meta name="description" content="Explore IBM Bluefizz, the next evolution of IBM Greenhouse, to discover the latest integrated email and social collaboration products available in IBM Connections Cloud.">
  12.    <meta name="keywords" content="Bluefizz, Greenhouse, IBM Connections Cloud, collaboration tools, collaboration software, cloud email, business email, email hosting">
  13.    <meta name="robots" content="index,follow">
  14.    <meta name="viewport" content="width=device-width, initial-scale=1">
  15.        
  16.    <link href="static/styles/bluefizz.css" rel="stylesheet" />
  17.  
  18.    <!-- IBM v18 Files and Configuration-->
  19.    
  20.    <script>        
  21. digitalData = {
  22. page:{
  23. category:{
  24. primaryCategory:'IBM_Social_CollaborationSolutions'
  25. },
  26. pageInfo:{
  27. effectiveDate:'2017-04-10',
  28. language:'en-US',
  29. publishDate:'2017-04-10',
  30. publisher:'IBM Corporation',
  31. version:'1.0',
  32. pageID:'IBM_Social_CollaborationSolutions_Bluefizz_Home',
  33. ibm:{
  34. contentDelivery:'HTML',
  35. contentProducer:'Bluefizz Owners',
  36. country:'US',
  37. owner:'Bluefizz Manager/Boston/Contr/IBM',
  38. siteID:'IBM_Social'
  39. }      
  40. }
  41. }
  42. };
  43. </script>
  44.    <script src="//1.www.s81c.com/common/stats/ida_stats.js"></script>
  45.    <link href="//1.www.s81c.com/common/v18/css/www.css" rel="stylesheet" />
  46.    <script src="//1.www.s81c.com/common/v18/js/www.js"></script>
  47.    <script src="//1.www.s81c.com/common/v18/js/masonry.js"></script>
  48.  
  49. <script type="text/javascript">
  50.    IBMCore.common.util.config.set({
  51.        "backtotop": {
  52.            "enabled": true
  53.        },
  54.        "coremodules": {
  55.            "enabled": true
  56.        },
  57.        // A flag to disable *all* content space widgets (tooltips, overlay, etc.)
  58.        "contentwidgets": {
  59.            "enabled": true
  60.        },
  61.        "masthead": {
  62.            "type": "alternate",
  63.            "logoanimation": {
  64.                "enabled": false
  65.            },
  66.            "marketplaceLink": {
  67.                "enabled": true
  68.            },
  69.            "megamenu": {
  70.                "enabled": true
  71.            },
  72.            "mobilemenu": {
  73.                "enabled": false
  74.            },
  75.            "notifications": {
  76.                "enabled": true
  77.            },
  78.            "profile": {
  79.                "enabled": true
  80.            },
  81.            "search": {
  82.                "enabled": true,
  83.                "typeahead": {
  84.                    "enabled": true
  85.                }
  86.            }
  87.        },
  88.        "footer": {
  89.            "enabled": true,
  90.            "socialLinks": {
  91.                "enabled": true
  92.            },
  93.            "type": "default"
  94.        },
  95.        "scrolltracker":{
  96.            "enabled": false
  97.        }
  98.    });
  99. </script>
  100.  
  101. <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js"></script>
  102.  
  103. <script type="text/javascript">
  104.  
  105.        // Init to 0 so first page requested is 1 and the default
  106.        // results per page is 10, but it can be envisioned that
  107.        // the number of results per page could change based on
  108.        // the type of device or browser or display resolution.
  109.  
  110.        var init_page = 0;
  111.  
  112.        sendJSON = function (async) {
  113.            // If async is not set then make it true.
  114.            if (async == undefined) {
  115.               async = true;
  116.            }
  117.  
  118.            if (!window.localStorage.getItem('page')) {
  119.                page = init_page;
  120.            } else {
  121.                page = Number(window.localStorage.getItem('page'));
  122.            }
  123.            window.localStorage.setItem('page', page + 1);
  124.  
  125.            var JsonLocalStorage = new Object();
  126.            var filters = JSON.parse(window.localStorage.getItem("filters"));
  127.            filters.forEach(function(filter) {
  128.                JsonLocalStorage[filter] = window.localStorage.getItem(filter);
  129.            });
  130.            JsonLocalStorage['page'] = window.localStorage.getItem('page');
  131.            JsonLocalStorage['results_pp'] = window.localStorage.getItem('results_pp');
  132.  
  133.            //Add the results template
  134.            JsonLocalStorage['results_template'] = "results.json";
  135.  
  136.            var resultsArray = [];
  137.            jQuery.ajax({
  138.             cache: false,
  139.             async: async,
  140.                url: "/srv/showme",
  141.                type: "GET",
  142.                dataType: 'json',
  143.                data: JsonLocalStorage,
  144.                contentType: "application/json; charset=utf-8",
  145.                beforeSend: function () { debug('sending request...');
  146.                    //notify_no_results('hide');
  147.                    //notify_sending('show');
  148.                    if (page == init_page) {
  149.                        removeResults();
  150.                    }},
  151.                success: function (data) { debug('receiving response...');
  152.                    debug(data.result);
  153.                    resultsArray = json2array(data);
  154.                    print(resultsArray);
  155.                    if (resultsArray.length > 0) {
  156.                        displayResults(resultsArray, true);
  157.                    }
  158.                    else
  159.                    {
  160.                        if (page == init_page) {
  161.                            notify_no_results('show');
  162.                        }
  163.                        window.localStorage.setItem('page', page);
  164.                        JsonLocalStorage['page'] = window.localStorage.getItem('page');
  165.                    }
  166.                 }
  167.            });
  168.  
  169.            // Set the values from localStorage into the cookie.
  170.            debug('writing cookie...');
  171.            debug(JsonLocalStorage);
  172.            jQuery.cookie("selected-values", JSON.stringify(JsonLocalStorage), { expires: 30, path: '/' });
  173.        };
  174.  
  175.        timeJSON = function () {
  176.            var init_results_pp = 100;
  177.            var val = null;
  178.            window.localStorage.setItem('page', init_page);
  179.            window.localStorage.setItem('results_pp', init_results_pp);
  180.  
  181.            var resultsSent = false;
  182.            var allSelected = false;
  183.            var storageFilters = JSON.parse(window.localStorage.getItem("filters")); //i.e., {"who", "what", "how"}
  184.            storageFilters.forEach(function(filter) {
  185.                var filter = window.localStorage.getItem(filter);
  186.                allSelected = (filter && (filter != "undefined") && (filter != "null")  && (filter != null)) ? true : false;
  187.            });
  188.            if (allSelected) {
  189.                //All filters have a selection, show results now
  190.                resultsSent = true;
  191.                clearTimeout(val);
  192.                sendJSON();
  193.            }
  194.            else {
  195.                for (var i = 0; i < storageFilters.length; i++) {
  196.                  var storageFilter =  window.localStorage.getItem(storageFilters[i]);
  197.                  if (storageFilter && (storageFilter != "undefined") && (storageFilter != "null")  && (storageFilter != null)) {
  198.                    //At least one filter has been selected. User may be in the process of clicking more filters. Wait a bit before showing the results.
  199.                    resultsSent = true;
  200.                    clearTimeout(val);
  201.                    val = setTimeout(sendJSON, 1000);
  202.                    return;
  203.                  }
  204.                }
  205.            }
  206.  
  207.            if (!resultsSent) {
  208.                //Nothing selected, show results now
  209.                clearTimeout(val);
  210.                sendJSON();
  211.            };
  212.        };
  213.  
  214.        function json2array(json){
  215.          var result = [];
  216.          var keys = Object.keys(json);
  217.          keys.sort().reverse().forEach(function(key){
  218.              // Skip these keys.
  219.              if (key != "result" && key != "page" && key != "results_pp") {
  220.                result.push(json[key]);
  221.              }
  222.          });
  223.          return result;
  224.        };
  225.  
  226.        function addSocialNode(parentNode, resultObj) {
  227.  
  228.            /*
  229.            //Set the social share URLs
  230.            href="https://www.facebook.com/sharer.php?u=<href>&t=<title>"
  231.            href="https://twitter.com/intent/tweet?url=<href>&text=<title>"
  232.            href="https://plus.google.com/share?url=<href>&t=<title>"
  233.            href="mailto:?subject=<title>&body=<href>"
  234.            */
  235.  
  236.            //Clone the Social template nodes
  237.            var socialShare = jQuery(".social-template.social-share").clone().removeClass("social-template");
  238.            jQuery(socialShare).find(".ibm-share-mono-link").attr("data-contentid", resultObj.id + "_social");
  239.            var socialIcons = jQuery(".social-template.social-icons").clone().attr("id", resultObj.id + "_social").removeClass("social-template");
  240.            var hostServer = location.protocol + '//' + location.host;
  241.  
  242.            jQuery(socialIcons).find(".ibm-facebook-mono-link").attr("href", 'https://www.facebook.com/sharer.php?u=' + hostServer + encodeURI(resultObj.href) + '&t=' + encodeURI(resultObj.title));
  243.            jQuery(socialIcons).find(".ibm-twitter-mono-link").attr("href", 'https://twitter.com/intent/tweet?url=' + hostServer +  encodeURI(resultObj.href) + '&text=' + encodeURI(resultObj.title));
  244.            jQuery(socialIcons).find(".ibm-googleplus-mono-link").attr("href", 'https://plus.google.com/share?url=' + hostServer +  encodeURI(resultObj.href) + '&t=' + encodeURI(resultObj.title));
  245.            jQuery(socialIcons).find(".ibm-email-encircled-link").attr("href", 'mailto:?subject=' + encodeURI(resultObj.title) + '&body=' + hostServer +  encodeURI(resultObj.href));
  246.  
  247.            jQuery(parentNode).find(".ibm-card__content").append(socialShare);
  248.            jQuery(parentNode).find(".ibm-card__content").append(socialIcons);
  249.  
  250.        };
  251.  
  252.        function createResultNode(resultObj, addSocial) {
  253.            //Clone the result template html fragment
  254.            console.log(resultObj.desc);
  255.            var resultNode = jQuery(".result-template").clone().removeClass("result-template").addClass("result-item");
  256.            //Set the id and attributes of the new result node
  257.            resultNode.attr("id", resultObj.id);
  258.            resultNode.find(".result-title").text(resultObj.title);
  259.            resultNode.find(".result-desc").text(resultObj.desc);
  260.            resultNode.find("a").attr("href", resultObj.href)
  261.            resultNode.find(".result-link").text("Learn more about " + resultObj.title);
  262.            if (addSocial) {
  263.                addSocialNode(resultNode, resultObj)
  264.            }
  265.            return resultNode;
  266.        };
  267.  
  268.        function displayResults(results, addSocial) {
  269.            var resultNode;
  270.            results.forEach(function(result){
  271.                resultNode = createResultNode(result, addSocial);
  272.                jQuery("#results-container").masonry().append(resultNode).masonry('appended', resultNode).masonry();
  273.                if (addSocial) {
  274.                    //IBMCore.common.widget.tooltip
  275.                    jQuery("#results-container").find("[data-widget='tooltip']").tooltip();
  276.                }
  277.            });
  278.        };
  279.  
  280.        function initMasonry() {
  281.            jQuery("#results-container").masonry({
  282.              itemSelector: '.result-item'
  283.            });
  284.        };
  285.        
  286.        function removeResults() {
  287.            jQuery("#results-container").masonry('remove', jQuery("#results-container").children());
  288.        };        
  289.  
  290.        function notify_no_results(p) {
  291.          if (p == 'show') {
  292.             jQuery("#results-container").after('<div class="ibm-h3 ibm-bold ibm-center ibm-textcolor-white-100" id="notify_no_results"> No Results</divS>');
  293.          }
  294.          else {
  295.              jQuery("#notify_no_results").remove();
  296.          }
  297.        };
  298.  
  299.        function print(array){
  300.          var arrayLength = array.length;
  301.          for (var i = 0; i < arrayLength; i++) {
  302.              debug(array[i], "none");
  303.          }
  304.        };
  305.  
  306.        function debug(s, o){
  307.            debug_style = "console"; // use: "alert", "console", or "none"
  308.            // If s is not set make it blank.
  309.            if (s == undefined) {
  310.                s = "";
  311.            }
  312.            // If o is set override the debug_style.
  313.            if (o != undefined) {
  314.                debug_style = o;
  315.            }
  316.            if (debug_style == "alert") {
  317.                alert(s);
  318.            } else if (debug_style == "console") {
  319.                console.debug(s);
  320.            } else {
  321.            }
  322.        };
  323.  
  324.        //Creates a Map from an Object
  325.        function objToMap(obj) {
  326.            var strMap = new Map();
  327.            var tmpMap = new Map();
  328.            for (var prop in obj) {
  329.              if (obj.hasOwnProperty(prop)) {
  330.                console.log('obj.' + prop + ' = ' + obj[prop]);
  331.                strMap.set(prop, obj[prop]);
  332.              }
  333.            }
  334.            return strMap;
  335.        };
  336.  
  337.        //Creates a Map from a Json string
  338.        function jsonToMap(jsonStr) {
  339.            return objToMap(JSON.parse(jsonStr));
  340.        };
  341.  
  342.        function addFilterToDOM(filterKey, filter, color) {
  343.  
  344.            //Clone the filter template html fragment
  345.            var filterNode = jQuery(".filter-template").clone().appendTo(".filter-container").removeClass("filter-template");
  346.            //Set the id and attributes of the new filter node
  347.            filterNode.attr("id", filterKey + "Container");
  348.            filterNode.find(".filter-title").text(filter.displayTitle); //Set the title (i.e., 'Tell us who you are')
  349.            filterNode.find(".filter").attr("id", filterKey + "Category"); //"whoCategory"
  350.            filterNode.find(".filter").attr("filter", filterKey); //"who", "what" or "how"
  351.            filterNode.find(".filter-image").attr("id", filterKey + "Image");
  352.            filterNode.find(".filter-image").attr("src", filter.defaultImage);
  353.            filterNode.find(".ibm-border-COLOR-core").addClass("ibm-border-" + color + "-core", true);
  354.            filterNode.find(".ibm-border-COLOR-core").removeClass("ibm-border-COLOR-core", false);
  355.            return filterNode;
  356.        };
  357.  
  358.        function addFilterCategoryToDOM(filter, filterCategory, color) {
  359.            //Example filterCategory
  360.            //{"value" : "100", "image" : "static/images/111.jpg", "category" : "Cust", "title" : "Customer"}
  361.            /* Example generated node
  362.                <p id="whoCust" filtertype="who">
  363.                    <button type="button" class="category-selector ibm-btn-pri ibm-fullwidth ibm-btn-blue-50">Customer</button>
  364.                </p>
  365.            */
  366.  
  367.            //Clone the filter category template html fragment
  368.            var containerNode = jQuery("#" +filter + "Category") //whoCategory
  369.            var categoryNode = containerNode.find(".filter-category-template").clone().appendTo(containerNode).removeClass("filter-category-template");
  370.            //Set the new node's id and attributes
  371.            categoryNode.attr("id", filter +  filterCategory.category); //whoCust
  372.            categoryNode.attr("filterType", filter); //who
  373.            categoryNode.find(".category-selector").text(filterCategory.title); //Customer
  374.            categoryNode.find(".ibm-btn-COLOR-50").addClass("ibm-btn-" + color + "-50", true);
  375.            categoryNode.find(".ibm-btn-COLOR-50").removeClass("ibm-btn-COLOR-50", false);
  376.            return categoryNode;
  377.        };
  378.  
  379.        function displayFilters(filters){
  380.            console.log("******************************************************************************************************************");
  381.  
  382.            //IBM colors
  383.            var ibm_colors = ["gray", "blue", "teal", "green", "magenta", "purple"]; //NOTE: This assumes there will never be more than 6 filters.
  384.            var color = 0;
  385.  
  386.            var filterMap = objToMap(filters);
  387.            filterMap.forEach(function(filter, filterKey) {
  388.                console.log("-------------------------------------");
  389.                console.log("filterKey: " + filterKey);  //Who, What, How
  390.                console.log(filterKey + " displayTitle: " + filter.displayTitle);
  391.                console.log(filterKey + " defaultImage: " + filter.defaultImage);
  392.  
  393.                var filterNode = addFilterToDOM(filterKey, filter, ibm_colors[color]);
  394.  
  395.                //Get the previously selected filter value
  396.                var hasSelected = false;
  397.                var storedFilter  = window.localStorage.getItem(filterKey);
  398.                if (storedFilter && (storedFilter != "undefined") && (storedFilter != "null")  && (storedFilter != null)) {
  399.                    hasSelected = true;
  400.                }
  401.                else {
  402.                    debug("Nothing selected for + '" + filterKey + "'");
  403.                };
  404.  
  405.                filter.categories.forEach(function(filterCategory) { //iterate through the categories array
  406.  
  407.                    var categoryMap = objToMap(filterCategory);
  408.                    var categoryNode = addFilterCategoryToDOM(filterKey, filterCategory, ibm_colors[color]);
  409.  
  410.                    if (hasSelected) {//If a category was previously selected by the user
  411.                        if (storedFilter != filterCategory.value) { //If the selected category is not this category, hide this category
  412.                            categoryNode.hide();
  413.                        }
  414.                        else {
  415.                            //The selected category is this category
  416.                            var categoryImage = filterCategory.image; //Update the displayed image to the one associated with this category
  417.                            jQuery("#" + filterKey + "Image").attr("src", categoryImage);
  418.                            categoryNode.attr("filterSelected", true);
  419.                            console.log(filterCategory.value + " (" + filterCategory.title + ") previously selected for '" + filterKey  + "'");
  420.                        }
  421.                    }
  422.  
  423.                    var categoryId = filterKey +  filterCategory.category //i.e., whoCust
  424.  
  425.                    //Set the click event for each filter category
  426.                    jQuery( "#" + categoryId).click(filterCategory, function() {
  427.                        var hasSelected;
  428.                        var selectedFilter = jQuery(this).attr("filterType"); //"who", "what" or "how"
  429.                        var isSelected = (jQuery(this).attr("filterSelected") == "true");
  430.  
  431.                        //If the category is already selected, deselect it - remove the filterSelected attribute and show all cagegories
  432.                        if (isSelected) {
  433.                            //Deselect the category
  434.                            //Remove the filter, show all results for this filter type
  435.                            window.localStorage.removeItem(selectedFilter);
  436.                            hasSelected = false;
  437.                        }
  438.                        else {
  439.                            //Set the category as selected
  440.                            //Update localStorage
  441.                            window.localStorage.setItem(selectedFilter, filterCategory.value);
  442.                            //Update the image
  443.                            jQuery("#" + selectedFilter + "Image").attr("src", filterCategory.image);
  444.                            //Clear previous filterSelected
  445.                            jQuery(this).parent().children().removeAttr("filterSelected");
  446.                            //Set filterSelected=true
  447.                            jQuery(this).attr("filterSelected", true);
  448.                            hasSelected = true;
  449.                        }
  450.  
  451.                        //Update the results
  452.                        timeJSON();
  453.  
  454.                        //Update category display
  455.                        var categoryNodes = jQuery("[filterType='" + selectedFilter + "']");
  456.                        categoryNodes.each(function() {
  457.                            if((jQuery(this).attr("filterSelected") != "true")) {
  458.                                jQuery(this).fadeToggle(1000, "linear");
  459.                            }
  460.                        });
  461.  
  462.                        //If nothing selected, clear any filterSelected=true node attributes
  463.                        if (!hasSelected) {
  464.                            jQuery(this).parent().children().removeAttr("filterSelected");
  465.                        }
  466.                    });
  467.                });
  468.                color++
  469.            });
  470.  
  471.            //Unhide the filter container
  472.            jQuery(".filter-container.filter-hide").removeClass("filter-hide");
  473.  
  474.            console.log("******************************************************************************************************************");
  475.        };
  476.  
  477.    jQuery(document).ready(function() {
  478.  
  479.  
  480.        //We will likely need to externalize this as a configuration Json file, usable by all components of the app
  481.        var filtersObj = {
  482.            "who": {
  483.                    "displayTitle"  :   "Tell us who you are",
  484.                    "defaultImage"  :   "static/images/110.jpg",
  485.                    "categories"    :   [{"value" : "100", "image" : "static/images/111.jpg", "category" : "Cust", "title" : "Customer"},
  486.                                         {"value" : "200", "image" : "static/images/104.jpg", "category" : "BP", "title" : "Business Partner"},
  487.                                         {"value" : "300", "image" : "static/images/103.jpg", "category" : "IBMer", "title" : "IBMer"}]
  488.            },
  489.            "what": {
  490.                    "displayTitle"  :   ". . . what you do",
  491.                    "defaultImage"  :   "static/images/107.jpg",
  492.                    "categories"    :   [{"value" : "10", "image" : "static/images/105.jpg", "category" : "Exec", "title" : "Executive"},
  493.                                         {"value" : "20", "image" : "static/images/106.jpg", "category" : "Admin", "title" : "Administrator"},
  494.                                         {"value" : "30", "image" : "static/images/108.jpg", "category" : "Dev", "title" : "Developer"},
  495.                                         {"value" : "40", "image" : "static/images/107.jpg", "category" : "User", "title" : "User"}]
  496.            },
  497.            "how": {
  498.                    "displayTitle"  :   ". . . how we can help",
  499.                    "defaultImage"  :   "static/images/112.jpg",
  500.                    "categories"    :   [{"value" : "1", "image" : "static/images/109.jpg", "category" : "Try", "title" : "Try"},
  501.                                         {"value" : "2", "image" : "static/images/110.jpg", "category" : "Buy", "title" : "Buy"},
  502.                                         {"value" : "3", "image" : "static/images/112.jpg", "category" : "Support", "title" : "Support"}]
  503.  
  504.            }
  505.        };
  506.  
  507.        initMasonry();
  508.        var filterKeys = Object.keys(filtersObj);
  509.        window.localStorage.setItem("filters", JSON.stringify(filterKeys));
  510.  
  511.        // Read the cookie and place the values in localStorage.
  512.        debug('reading cookie...');
  513.        var filterCookies = jQuery.cookie("selected-values");
  514.        var cookiesFound = false;
  515.        if (filterCookies != undefined && filterCookies != null && filterCookies != "null") {
  516.            var JsonLocalStorage = JSON.parse(filterCookies);
  517.            console.log(JsonLocalStorage);
  518.            filterKeys.forEach(function(key) {
  519.                if (JsonLocalStorage == null || JsonLocalStorage[key] == null || JsonLocalStorage[key] == "null") {
  520.                    window.localStorage.setItem(key, "");
  521.                } else {
  522.                    window.localStorage.setItem(key, JsonLocalStorage[key]);
  523.                    cookiesFound = true;
  524.                }
  525.            });
  526.        };
  527.  
  528.        if (cookiesFound) {
  529.            // Get back to the previous page location in one request.
  530.            var temp_page = JsonLocalStorage.page;
  531.            var temp_results_pp = JsonLocalStorage.results_pp;
  532.            window.localStorage.setItem('page', init_page);
  533.            window.localStorage.setItem('results_pp', temp_page * temp_results_pp);
  534.            displayFilters(filtersObj);
  535.            sendJSON();
  536.  
  537.            // Replace values in localStorage and the cookie to keep going.
  538.            window.localStorage.setItem('page', temp_page);
  539.            window.localStorage.setItem('results_pp', temp_results_pp);
  540.            debug('writing cookie...');
  541.            debug(JsonLocalStorage);
  542.            jQuery.cookie("selected-values", JSON.stringify(JsonLocalStorage), { expires: 30, path: '/' });
  543.        } else {
  544.            console.log("No Cookies Found.");
  545.            jQuery.cookie("selected-values", null); //Clear all selected-values in case of any bad values i.e., "null" as a string
  546.            displayFilters(filtersObj);
  547.            timeJSON();
  548.        }
  549.  
  550.        /* DISABLING scroll event - leaving for future use */
  551.        /*
  552.        jQuery(window).scroll(function() {
  553.            if(jQuery(window).scrollTop() + jQuery(window).height() >= jQuery(document).height() - jQuery("#ibm-footer-module").height() * 1.1) {
  554.                sendJSON(false);
  555.            }
  556.        });
  557.        */
  558.    });
  559.  
  560.    </script>
  561.  
  562.    <!--
  563.    <script src="//www.ibm.com/software/info/js/tactic.js" type="text/javascript"></script>
  564.    <script src="//www.ibm.com/software/fr/js/carryout.js" type="text/javascript"></script>
  565.    -->
  566.  
  567. </head>
  568.  
  569. <body id="ibm-com" class="ibm-type">
  570.    <div id="ibm-top" class="ibm-landing-page">
  571.        <!-- MASTHEAD_BEGIN -->
  572.        <div id="ibm-masthead" role="banner" aria-label="IBM">
  573.          <div id="ibm-mast-options">
  574.            <ul role="toolbar" aria-labelledby="ibm-masthead">
  575.              <li id="ibm-geo" role="presentation">
  576.                <a href="//www.ibm.com/planetwide/select/selector.html">United States</a>
  577.              </li>
  578.            </ul>
  579.          </div>
  580.  
  581.          <div id="ibm-universal-nav">
  582.            <div id="ibm-home">
  583.              <a href="//www.ibm.com/us-en/">IBM®</a>
  584.            </div>
  585.            <ul id="ibm-menu-links" role="toolbar" aria-label="Site map">
  586.              <li>
  587.                <a href="//www.ibm.com/sitemap/us/en/">Site map</a>
  588.              </li>
  589.            </ul>
  590.            <div id="ibm-search-module" role="search" aria-labelledby="ibm-masthead">
  591.                <form id="ibm-search-form" action="//www.ibm.com/Search/" method="get">
  592.                    <p>
  593.                    <label for="q"><span class="ibm-access">Search</span></label>
  594.                    <input type="text" maxlength="100" value="" placeholder="Search" name="q" id="q" aria-label="Search" />
  595.                    <input type="hidden" value="17" name="v"/>
  596.                    <input type="hidden" value="utf" name="en"/>
  597.                    <input type="hidden" value="en" name="lang"/>
  598.                    <input type="hidden" value="us" name="cc"/>
  599.                    <input type="submit" id="ibm-search" class="ibm-btn-search" value="Submit"/>
  600.                    </p>
  601.                </form>
  602.            </div>          
  603.          </div>
  604.        </div>
  605.        <!-- MASTHEAD_END -->
  606.  
  607.        <!-- CONTENT BEGIN -->
  608.        <div id="ibm-content-wrapper">
  609.  
  610.            <!-- LEADSPACE_BEGIN -->
  611.            <header role="banner" aria-labelledby="ibm-pagetitle">
  612.                <div class="ibm-sitenav-menu-container" data-widgetprocessed="true">
  613.                    <div id="ibm-pagetitle" class="ibm-sitenav-menu-name">IBM Bluefizz</div>
  614.                </div>
  615.            </header>
  616.            <!-- LEADSPACE_END -->
  617.  
  618.            <main role="main" aria-labelledby="ibm-pagetitle">
  619.                <div id="ibm-pcon">
  620.                    <div id="ibm-content">
  621.                        <div id="ibm-content-body" class="bluefizz-content-body">
  622.                            <div id="ibm-content-main" style="padding-top: 0">
  623.  
  624.                                <!-- CONTENT FILTERS BEGIN -->
  625.                                <section class="ibm-band ibm-resize" style="border-bottom: 1px solid #e5e5e5; margin-bottom: 20px; padding-bottom: 0px; background: url(/static/images/TinyBubbles2.jpg); background-position: top;">
  626.                                  <div class="filter-container filter-hide ibm-columns">
  627.  
  628.                                    <!-- FILTER TEMPLATE: HTML fragment for filter -->
  629.                                    <article class="filter-template ibm-col-6-2 ibm-center ibm-col-small-1-1">
  630.                                      <div class="ibm-card ibm-background-transparent ibm-border-hover-black-core ibm-border-COLOR-core">
  631.                                        <div class="bluefizz-card__content">
  632.                                          <!-- <h4 class="filter-title ibm-h4 ibm-bold"></h4> -->
  633.                                          <h4 class="filter-title ibm-h4"></h4>
  634.                                        </div>
  635.                                        <div class="filter ibm-card__top">
  636.                                          <p class="filter-image-padding">
  637.                                            <img class="filter-image ibm-resize" alt="" />
  638.                                          </p>
  639.                                          <p class="filter-category-template filter-padding">
  640.                                            <button type="button" class="category-selector ibm-btn-pri ibm-fullwidth ibm-btn-COLOR-50"></button>
  641.                                          </p>
  642.                                        </div>
  643.                                      </div>
  644.                                    </article>
  645.                                    <!-- FILTER TEMPLATE END -->
  646.                                  </div>
  647.                                </section>
  648.                                <!-- CONTENT FILTERS END -->
  649.  
  650.                                <!-- RESTULT TEMPLATE: HTML fragment for result -->
  651.                                <div class="result-template ibm-col-5-1 ibm-col-medium-6-2">
  652.                                    <div class="ibm-card ibm-border-gray-50">
  653.                                        <div class="ibm-card__content">
  654.                                            <h4 class="result-title ibm-h4 ibm-light"></h4>
  655.                                            <p class="result-desc"></p>
  656.                                            <p class="ibm-ind-link">
  657.                                                <a class="result-link ibm-forward-link" href="" target="_blank"></a>
  658.                                            </p>
  659.                                        </div>
  660.                                    </div>
  661.                                </div>
  662.                                <!-- RESULTS TEMPLATE END -->
  663.  
  664.                                <!-- SOCIAL TEMPLATE -->
  665.                                    <p class="ibm-icononly social-share social-template"><a class="ibm-inlinelink ibm-share-mono-link" href="javascript:;" target="" data-widget="tooltip" data-contentid="" title="" style="margin-bottom:0px; !important"  >Share this content</a></p>
  666.                                    <div id="" class="ibm-tooltip-content social-icons social-template">
  667.                                        <p class="ibm-icononly">
  668.                                            <a class="ibm-facebook-mono-link" target="_blank">Share this on Facebook</a>
  669.                                            <a class="ibm-twitter-mono-link" target="_blank">Share this on Twitter</a>
  670.                                            <a class="ibm-googleplus-mono-link" target="_blank">Share this on Google Plus</a>
  671.                                            <a class="ibm-email-encircled-link" target="_blank">E-mail this page</a>
  672.                                        </p>
  673.                                    </div>
  674.                                <!-- SOCIAL TEMPLATE END -->
  675.  
  676.                                <!-- RESULTS BEGIN -->
  677.                                    <!-- <div id="results-container" class="ibm-columns ibm-cards results-hide" data-widget="masonry" data-items=".ibm-col-5-1"> -->
  678.                                    <div id="results-container"  class="ibm-columns ibm-cards" data-items=".ibm-col-5-1"  >
  679.                                        <!-- RESULTS INJECTED HERE -->
  680.  
  681.                                    </div>
  682.                                <!-- RESULTS END -->
  683.  
  684.                                <!--
  685.                                <p class="ibm-ind-link ibm-right">
  686.                                    <a class="ibm-anchor-down-link ibm-btn-pri ibm-btn-blue-50" onclick="sendJSON(false)">More Results</a>
  687.                                    <a class="ibm-anchor-up-link ibm-btn-pri ibm-btn-blue-50" href="#ibm-top">Back to top</a>
  688.                                </p>
  689.                                -->
  690.                                <div class="ibm-sharethispage ibm-columns"></div>
  691.                            </div>
  692.                        </div>
  693.                    </div>
  694.                </div>
  695.            </main>
  696.        </div>
  697.        <!-- CONTENT END -->
  698.  
  699.        <!-- FOOTER_BEGIN -->
  700.        <div id="ibm-footer-module">
  701.        </div>
  702.        <footer role="contentinfo" aria-label="IBM">
  703.            <div id="ibm-footer">
  704.                <h2 class="ibm-access">Footer links</h2>
  705.                <ul>
  706.                    <li><a href="//www.ibm.com/contact/us/en/">Contact</a></li>
  707.                    <li><a href="//www.ibm.com/privacy/us/en/">Privacy</a></li>
  708.                    <li><a href="//www.ibm.com/legal/us/en/">Terms of use</a></li>
  709.                    <li><a href="//www.ibm.com/accessibility/us/en/">Accessibility</a></li>
  710.                </ul>
  711.            </div>
  712.        </footer>
  713.        <!-- FOOTER_END -->
  714.  
  715.    </div>
  716.  </body>
  717. </html>
Copyright © 2002-9 Sam Ruby, Mark Pilgrim, Joseph Walton, and Phil Ringnalda