(function($)
{
	$.fn.marketLink = function(market)
	{
		return this.each(function()
		{
			var url = $(this).attr('href');
			
			$(this).attr('href', url+"/"+market);
		});
	}
	
	$.fn.wrapChildren = function(options)
	{
		var options = $.extend({
			childElem : undefined,
			sets : 1,
			wrapper : 'ul'
		}, options || {});
	
		if (options.childElem === undefined) return this;
	
		return this.each(function()
		{
			var elems = $(this).children(options.childElem);
			var arr = [];
			
			elems.each(function(i,value)
			{
				arr.push(value);
				
				if (((i + 1) % options.sets === 0) || (i === elems.length -1))
				{
					var set = $(arr);
					arr = [];
					set.wrapAll(document.createElement(options.wrapper));
				}
			});
		});
	}
	
	$.fn.carousel = function(options)
	{
		var settings = $.extend({
			fx: 'scrollHorz',
			ease: 'easeInOutExpo',
			pause: true,
			speed: 1000,
			timeout: 4000
		}, options||{});
		
		return this.each(function()
		{
			$(this).cycle(
			{
				containerResize: 0,
			    easing: settings.ease,
			    fx: settings.fx,
			    pager: settings.nav,
			    pause: settings.pause,
			    pauseOnPagerHover: 1,
			    speed: settings.speed,
			    timeout: settings.timeout
			});
			
			if (settings.pause) 
			{
				$(this).cycle('pause');
			}
			
			if ($(this).children().size() < 2) $(settings.nav).hide();
		});
	}
	
	$.fn.divSelector = function(target)
	{
		var target = target;

			$(this).change(function(e)
			{
				e.preventDefault();
				
				$(target + ' > div').hide();
				
				$('#'+this.value).toggle();
			});
			
			$(this).change();
		
		return this;
	};
	
	$.fn.showTix = function()
	{
		var settings = {
			width: 727,
			height: 483
		};
		
		return this.each(function()
		{
			var showImg = $(this).closest('li').find('img');
						
			var data = {
				'showId': $(this).attr('rel'),
				'title': showImg.attr('alt'),
				'imgSrc': showImg.attr('src').replace('medium', 'large'),
				'imgWidth': 270,
				'imgHeight': 400
			};
			
			$(this).click(function(e)
			{
				e.preventDefault();
				
				var container = $('<div>').append($.tmpl('showModalTmpl', data)).html();
				
				Shadowbox.open({
					content: container,
					player: "html",
					width: settings.width,
					height: settings.height,
					options: {
						displayNav: false,
						onFinish: function() { tix.getShowLinks(data.showId) }
					}
				});
			});
		});
	};
	
	$.fn.theaterTixModal = function()
	{
		var settings = {
			width: 480,
			height: 454
		};
		
		return this.each(function()
		{
			var data = {
				'theaterId': $(this).attr('rel'),
				'title': $(this).closest('li').find('h2 a').text()
			};
			
			$(this).click(function(e)
			{
				e.preventDefault();
				
				var container = $('<div>').append($.tmpl('theaterModalTmpl', data)).html();
				
				Shadowbox.open({
					content: container,
					player: "html",
					width: settings.width,
					height: settings.height,
					options: {
						displayNav: false,
						onFinish: function() { tix.getTheaterLinks(data.theaterId) }
					}
				});
			});
		});
	};
	
	$.fn.checkEmpties = function()
	{
		return this.each(function()
		{
			$(this).find('tr.error').remove();
			
			$(this).find('tbody').each(function()
			{
				if ($(this).find('tr:visible').size() == 0) $(this).prepend(tix.error);
			});
		});
	}

})(jQuery);
