function Buttons() {}

Buttons.list = {};

Buttons.addButton = function(params) {
	Buttons.list[params.id] = new Button(params);
}

Buttons.standardButton = function(params) {
	// params["style"] = dark_blue / silver / gold
	// params["id"] = id (optional)
	// params["label"] = string
	// params["width"] = min / max
	// params["action"] = javascript action (optional)
	// params["url"] = url (optional)
	// params["state"] = enabled / disabled (optional)
	
	var a_id = "a_"+params["id"]; //a
	var pt_id = "pt_"+params["id"]; //p text
	
	if (params["width"]) {
		if (params["width"] == "max") {
			var a_display = "block";
			var a_width = "";
		} else if (params["width"] == "min") {
			var a_display = "inline-block";
			var a_width = "";
		} else {
			var a_display = "inline-block";
			var a_width = " width: "+params["width"]+";";
		}
	} else	{
		var a_display = "inline-block";
		var a_width = "";
	}
	
	var href = "javascript: nothing";
	if (params["action"] && !Utils.isEmptyString(params["action"])) {
		href = "javascript: "+params["action"]+";";
	} else if (params["url"]) {
		href = params["url"];
	}
	
	var base_class = "btnDarkBlue";
	
	switch (params["style"]) {
		case "dark_blue":
			base_class = "btnDarkBlue";
			break;
		case "gold":
			base_class = "btnGold";
			break;
		case "silver":
			base_class = "btnSilver";
			break;
		case "dark_red":
			base_class = "btnDarkRed";
			break;
		case "tan":
			base_class = "btnTan";
			break;
	}
	
	var state = "enabled";
	var state_class = "";
	if (params["state"] && params["state"] == "disabled") {
		state = "disabled";
		state_class = "Disabled";
	}
	
	var a_class = "pageButton "+base_class+state_class;
	
	var button_params = {id: params["id"], type: "standard", base_class: base_class, display: a_display, state: state};
	Buttons.addButton(button_params);
	
	var html = "";
	
	html += "<a onMouseUp='this.blur();' id='"+a_id+"' class='"+a_class+"' style='display: "+a_display+";"+a_width+"' href='"+href+"' title=''><p id='"+pt_id+"' class='btnText'>"+params["label"]+"</p></a>";
	
	return html;
}



function Button(params) {
	this.id = params.id;
	
	this.vis = true;
	this.type = params.type; //standard, toggle, etc.
	this.base_class = params.base_class;
	this.display = params.display;
	this.state = params.state;
	
	this.label = params.label;
}

Button.prototype.setLabel = function(label) {
	var pt_id = "pt_"+this.id;
	Utils.setInnerHtml(pt_id, label);
	this.label = label;
}

Button.prototype.setAction = function(action) {
	var a_id = "a_"+this.id;
	Utils.setHref(a_id, "javascript: "+action);
}

Button.prototype.clearHref = function() {
	var a_id = "a_"+this.id;
	Utils.setHref(a_id, "javascript:;");
}

Button.prototype.setLabelAndAction = function(label, action) {
	this.setLabel(label);
	this.setAction(action);
}

Button.prototype.setUrl = function(url) {
	var a_id = "a_"+this.id;
	Utils.setHref(a_id, url);
}

Button.prototype.setEnabled = function(action) {
	var a_id = "a_"+this.id;
	var class_names = "pageButton "+this.base_class;
	Utils.setClassName(a_id, class_names);
	this.setAction(action);
	Utils.setOpacity(a_id, 1.0);
	this.state = "enabled";
}

Button.prototype.setDisabled = function() {
	var a_id = "a_"+this.id;
	var class_names = "pageButton "+this.base_class+"Disabled";
	Utils.setClassName(a_id, class_names);
	this.clearHref();
	Utils.setOpacity(a_id, 0.15);
	this.state = "disabled";
}

Button.prototype.show = function() {
	var a_id = "a_"+this.id;
	Utils.setDisplay(a_id, this.display);
	this.vis = true;
}

Button.prototype.hide = function() {
	var a_id = "a_"+this.id;
	Utils.setDisplay(a_id, "none");
	this.vis = false;
}

