var jit = {
    init: function() {
        this.initPrivacyPolicyLink();
    },

    initPrivacyPolicyLink: function() {
        $('a.privacy-policy').click(function(event) {
            event.preventDefault();
            jit.openHelpPanel({ url: this.href });
        });
    },

    exception: function(e) {
        if (typeof(console) != 'undefined' && typeof(console.error) == 'function') {
            console.error(e);
        }

        try {
            this.openBugReportDialog();
        } catch(e) {}
    },
    
    openBugReportDialog: function() {
        this.openDialog({ url: '/feedback?error=true' });
    },
    
    openConfirmationDialog: function(cfg) {
        return new jit.widget.ConfirmationDialog(cfg);
    },
    
    openHelpPanel: function(cfg) {
        return new jit.widget.HelpPanel(cfg);
    },
    
    /**
     * Open a large panel centred in the viewport.
     */
    openDialog: function(cfg) {
        return new jit.widget.Dialog(cfg);
    },
    
    /**
     * Open a small panel at the top of the viewport.
     */
    openShutter: function(cfg) {
        return new jit.widget.Shutter(cfg);
    },
    
    openModal: function(cfg) {
        return new jit.widget.Modal(cfg);
    },

    parseXML: function(text) {
        var doc;

        if (window.ActiveXObject) {
            doc = new ActiveXObject("Microsoft.XMLDOM");
            doc.async = false;
            doc.loadXML(text);
        } else {
            doc = (new DOMParser()).parseFromString(text, "application/xml");
        }

        return doc;
    }
}

$(function() { jit.init() });

