/**
 * Filename    : HtmlPrettyPrinter.js
 * Author      : Robert Cerny
 * Created     : 2006-10-30
 * Last Change : 2006-11-20
 *
 * Description:
 *   Prettyprints a JavaScript Object for display in HTML. Creates a
 *   div with class json and put names and null in spans with
 *   according class attributes.
 *
 * Example:
 *   var printer = CERNY.json.HtmlPrettyPrinter();
 *   var prettyJsonHtml = printer.print(myObject);
 *
 * History:
 *   2006-10-30 Inital release
 *
 * License:
 */

CERNY.require("CERNY.json.HtmlPrettyPrinter",
              "CERNY.json.TextPrettyPrinter",
              "CERNY.json.Printer");

CERNY.json.HtmlPrettyPrinter = function(indentIncrease, obj) {

    var self = CERNY.json.TextPrettyPrinter(indentIncrease, obj);

    self.print = CERNY.json.HtmlPrettyPrinter_print;
    self.startName = CERNY.json.HtmlPrettyPrinter_startName;
    self.endName = CERNY.json.HtmlPrettyPrinter_endName;
    self.printNull = CERNY.json.HtmlPrettyPrinter_printNull;

    return self;
};

CERNY.json.HtmlPrettyPrinter_print = function(object) {
    return '<div class="json">' + CERNY.json.Printer_print.call(this, object) + '</div>';
};

CERNY.json.HtmlPrettyPrinter_startName = function(str) {
    return '<span class="name">' + str;
};

CERNY.json.HtmlPrettyPrinter_endName = function(str) {
    return str + '</span>';
};

CERNY.json.HtmlPrettyPrinter_printNull = function(str) {
    return '<span class="null">' + str + '</span>';
};

