/*
 * Copyright (c) 2012-2014 Kaarle Ritvanen
 * See LICENSE file for license details
 */

define(["aconf/navigation", "jquery", "underscore"], function(navi, $, _) {
    function href() {
	return $("<a>").attr({href: "javascript:void(0);"});
    }

    return {
	setText: function(el, s) {
	    el.html(_.map(s.split("\n"), _.escape).join("<br/>"));
	},

	href: href,

	objectRef: function(value, el) {
	    el = el || href();
	    if (value) {
		el.click(function() { navi.setPath(value); }).text("Show");
	    }
	    return el;
	},

	button: function(label, func) {
	    return $("<input>").attr(
		{type: "submit", value: label}
	    ).click(func);
	},

	makeRow: function(el) {
	    if (el.is("td")) return $("<tr>").html(el);
	    return el;
	},

	setStatus: function(el, status) {
	    el.removeClass();
	    if (status) el.addClass(status);
	},

	setVisible: function(el, visible) {
	    if (visible) el.show();
	    else el.hide();
	}
    };
});
