(function($)
{
	$.fn.fontisizer = function(options)
	{
		var opts = $.extend({}, $.fn.fontisizer.defaults, options);
		var ctl = $(opts.ctl);
		if (ctl.length <= 0 || opts.classes.length <= 0)
			return;

		var controls = this;

		for (var y = 0; y < ctl.length; y++)
		{	
			var table = $("<table type='FontisizerTable' cellpadding='0' cellspacing='0' " + (opts.containerClass != null ? " class='" + opts.containerClass + "'" : "") + ">").appendTo(ctl[y]);
			var tableRow = $("<tr></tr>").appendTo(table);
			for (var x = 0; x < opts.classes.length; x++)
			{
				var tableCell;
				if (opts.activeClass != null && opts.inActiveClass != null)
					tableCell = $("<td class='" + (x == 0 ? opts.activeClass : opts.inActiveClass) + " " + opts.classes[x] + "' cssClass='" + opts.classes[x] + "'>A</td>");
				else
					tableCell = $("<td class='" + opts.classes[x] + "' cssClass='" + opts.classes[x] + "'>A</td>");
			
				if (opts.hoverClass != null)
				{
					tableCell.hover(
						function()
						{
							$(this).addClass(opts.hoverClass);
						},
						function()
						{
							$(this).removeClass(opts.hoverClass);
						}	
					);
				}
	
				tableCell.click(
					function()
					{
						var cssClass = $(this).attr("cssClass");			
						if (opts.activeClass != null)
						{
 							$("table[type=FontisizerTable] td").removeClass(opts.activeClass).addClass(opts.inActiveClass);
							$("table[type=FontisizerTable] td[cssClass=" + cssClass + "]").removeClass(opts.inActiveClass).addClass(opts.activeClass);
						}
							
						controls.each(function()
						{
							$(this).removeClass().addClass(cssClass);	
						});
					}
				).appendTo(tableRow);
			}
		}
		return this;
	};
	
	$.fn.fontisizer.defaults = 
	{
		classes: [],
		ctl: null,
		containerClass: null,
		hoverClass: null,
		inActiveClass: null,
		activeClass: null
	};
})(jQuery);	