// JavaScript Document

var iconImgs = [
	["registration","icon_discount.png"],
	["earlybird","icon_early_bird.png"]
];

function getIcon (name)
{
	var i=-1;
	while (++i<iconImgs.length && iconImgs[i][0] != name);
	if (i==iconImgs.length)
		return "";
	return iconImgs[i][1];
}

function writeHelptexts () {
	$(".ih_wrapper").remove();
	
	$("img[helptext]").each(function () {
		$(this).addClass("has-help");
		$(this).after("<div class='ih_wrapper'><div class='input-help'>"+$(this).attr("helptext")+"</div></div>");
		$(this).hover(function () {
			$(this).next().show();
		}, function() {
			$(this).next().hide();
		});
	});
	$(".ih_wrapper").hide();
}

$(document).ready(function () {
	
	var data = $("#course-discounts").html();
	
	db = new IconData(data);
	
	$("tr[schedid]").each(function () {
		var dDiv;
		var schedId = parseInt($(this).attr("schedid"));
		if ($(this).parents("table:first").attr("class").indexOf("feature-table") > -1)
		{
			var isFirstRow = $(this).prevAll().length == 0;
			var tdEq = (isFirstRow?1:0);
			$(this).children("td:eq(" + tdEq + ")").prepend("<div class=\"discounts\"></div>");
			dDiv = $(this).children("td:eq(" + tdEq + ")").children(".discounts");
		} else {
			$(this).children("td:first").prepend("<div class=\"discounts\"></div>");
			dDiv = $(this).children("td:first").children(".discounts");
		}
		var sched = db.getSched(schedId);
		if (sched)
		{
			var iconPairs = sched.icons();
			var html = "";
			
			for (var i=0; i<iconPairs.length; i++)
				html += "<img src=\"images/" + getIcon(iconPairs[i].icon) + "\" alt=\"\" width=\"16\" height=\"16\" helptext=\"" + iconPairs[i].msg + "\"/>";
			dDiv.html(html);
		}
	});
	
	writeHelptexts();
});

IconData = function (data)
{
	var lines = [];
	
	data = data.split("|");
	for (var i=0; i<data.length; i++)
		lines.push(new dbLine(data[i]));
	
	lines.sort();
	
	this.getSched = function (schedId)
	{
		var i=-1;
		while (++i<lines.length && lines[i].schedId != schedId);
		if (i==lines.length)
			return null;
		return lines[i];
	}
}

dbLine = function (data)
{
	var data = data.split("~");
	var me = this;
	
	this.schedId = data[0];
	
	var icns = [];
	
	for (var i=1; i<data.length; i++)
		icns.push(new IconPair(data[i]));
		
	this.icons = function () { return icns; }
	
	this.toString = function () { return me.schedId; }
}

IconPair = function (data)
{
	data = data.split(":");
	this.icon = data[0];
	this.msg = data[1];
}