
jQuery.ActivityList = {
	doer: function(opts)
	{
		var default_values = {
            siteID: '',
            formInputNumber: '',
			locationID: '',
			cartItems: ''
		};
		return jQuery(this).each(
			function() {
				var options = jQuery.extend(default_values, opts);
				function assign_event() 
				{
					var BE = jQuery('#ares-wrapper')[0];
					jQuery('.expand', BE).bind('click', expandTics);
					jQuery('.ticket_info_expand', BE).bind('click',displayTicInfo);
				}
				function expandTics()
				{
					var elm = jQuery(this); 
					var activityList = jQuery('#activity_list', jQuery('#ares-wrapper')[0]);
					var counter = activityList.attr('counter');
					var parent = elm.parents('.prodlisting');
					var hiddenTics = jQuery('.hidden_tickets', parent);
					var attrID = parent.attr('attrid');
					var rows = jQuery('.ticket_info_expand', parent);
					var button = jQuery('.button', parent);
					var textArea = jQuery('.expand_text', elm);
					var checkContent = jQuery('td', hiddenTics);
					elm.toggleClass('open');

					// check for content so we only make the request the first time.
					if(elm.hasClass('open') && checkContent.length < 1)
					{
						var formInputNumber = options.formInputNumber;
						elm.addClass('pending');
						jQuery.ajax({ 
							type: "GET", url: options.siteID + "_xhr-proxy.html",
							success: function(data){
								hiddenTics.html(data);
								hiddenTics.toggle('blind');
								jQuery('.ticket_info_expand', hiddenTics).bind('click',displayTicInfo);
								elm.removeClass('pending');	
								var tooltips = jQuery('.savings', hiddenTics);
								tooltip(tooltips); 
								textArea.html('Close tickets');
								button.css('display','inline');
								//get all newly added tickets
								var items = jQuery('.ticket_info_expand', hiddenTics);
								//get the last one and find the value of the counter attribute
								var formInputNumber = new Number(jQuery(items[items.length-1]).attr('counter'));
								//set counter attrribute of activity list to pass value to ajax request
								activityList.attr('counter', formInputNumber+1);
							},
							error: function(data){
								elm.removeClass('pending');
								elm.removeClass('open');
								alert('There has been a problem with your request.  Please try again later.');
								return false;
							},
							data: ({                   
							    'siteID': options.siteID,
							    'locationID':  options.locationID,
								'formInputNumber': counter,
								'rowNum': rows.length,
								'attractionID': attrID,
								'serviceType': 'unfeatured_tickets',
								'cartItems': options.cartItems
							})
						}); 
					}
					else
					{
						if(elm.hasClass('open') && !checkContent.length < 1)
						{
							textArea.html('Close tickets');
							button.css('display','inline');
						}
						else
						{
							if(button.attr('featured'))
							{
								textArea.html('View tickets');
								button.css('display','none');
							}
							else
							{
								textArea.html('View all tickets');
							}
						}
						hiddenTics.toggle('blind');
						
					}
					return false;
				}
				function displayTicInfo() 
				{
					var elm = jQuery(this);
					var ticGroupContext = elm.parents('.ticket_group');
					var ticInfo = jQuery('.ticket_desc', ticGroupContext);
					var ticketID = elm.attr('ticketID');
					var pContent = jQuery('.ticket_desc_text p.tic_info_content', ticGroupContext).html();
					elm.toggleClass('open');
					
					// check for content so we only make the request the first time.
					if(elm.hasClass('open') && pContent == '')
					{
						var p = jQuery('.ticket_desc_text p.tic_info_content', ticGroupContext);
						
						jQuery.ajax({ 
							type: "GET", url: options.siteID + "_xhr-proxy.html",
							success: function(data){
								p.html(data);
								ticInfo.toggle('blind');
							},
							error: function(data){
								elm.removeClass('open');
								alert('There has been a problem with your request.  Please try again later.');
							},
							data: ({ 
							    'siteID': options.siteID,
								'ticketID': ticketID,
								'serviceType': 'ticket_info'
							})
						}); 
					}
					else 
					{
						ticInfo.toggle('blind');
					}
					return false;
				}
				function tooltip(elm)
				{					
					elm.tooltip({
    				    tip:'#tooltip',
    				    position: 'top center',
    				    offset: [0, 10]
    				});
				} 
				tooltip(jQuery('.savings', jQuery('#ares-wrapper')[0]));
				assign_event();

			});//end this.each
	}//end doer
};
jQuery.fn.ActivityList = jQuery.ActivityList.doer; 
