/* BON JOVI */
/* Javascript Triggers and Custom Functions
----------------------------------------------------------------------------- */


	$(window).load(function() {


/* PAGE LOAD
----------------------------------------------------------------------------- */


		$('#content div.pane').each(function() {

			if ($(this).children().length == 0) {
				$(this).remove();
			} else {
				$(this).prepend('<span class="pane-top"></span>');
				$(this).append('<span class="pane-bottom"></span>');
			}
		
		});

		$('div.tabbed div div.pane:first-child').addClass('first');
		$('div.tabbed > div.pane').addClass('first');

		// PLUGIN: CLIQUE ACTIONS (Replaces submit buttons with text links)
		try { $('input[type=submit]').cliqueActions(); } catch (error) { alert('Error: Missing Clique Actions Plugin'); }

		tabs();
		comments();
		mailinglist();

		$('#header').hover(function() {
		
			$(this).addClass('hover');
			
		}, function() {
			
			$(this).removeClass('hover');
			
		});
		
		
		// Back Button
		$('a[href=#back]').click(function() {
		
			history.go(-1);
			return false;
		
		});


/* PAGE-SPECIFIC JAVASCRIPT
----------------------------------------------------------------------------- */


	if (page == "show" || page == "rsvp-fans" || page == "rsvp-friends" || page == "post") {
	
		$('#tickets div.tickets dt:contains("Pre-sale Tickets")').text('Fan Club Pre-sale Tickets').addClass('presale').next('dd').addClass('presale');
		$('#tickets div.tickets dt:contains("VIP Tickets")').text('Fan Club VIP Packages').addClass('vip').next('dd').addClass('vip');
		$('<em>' + $('#tickets div.details dt:contains("Password")').next().text() + '</em>').appendTo('#tickets');		
		$('div.details dt:contains("Password")').next().remove();
		$('div.details dt:contains("Password")').remove();
		$('#tickets a.presale').text('Buy Fan Club Pre-sale Tickets');
		$('#tickets a.vip').text('Buy Fan Club VIP Packages');
		$('div.display a').removeAttr('target');
		$('#setlist li.modify a.add').text('Submit Your Own');

		var city = $('#show div.venue dt:contains("City")').next('dd').text();
		$('#show h4.date').after('<h4 class="city">' + city + '</h4>');

		if (plan != "backstage_jbj") $('div.display a.action.vip').attr('href','/vip');
	
		memberPlaceholders();
		
		$('#fanphotos ul.photos').each(function() {
		
			if ($(this).siblings('ul.paging').length == 0) $(this).after('<ul class="actions paging"></ul>');
			
			$(this).siblings('ul.paging').append('<li class="previous"><a href="#">Previous</a></li><li class="next"><a href="#">Next</a></li>');
			
			$(this).cycle({
			
				speed: 'fast',
				timeout: 5000,
				next: '#fanphotos .next a',
				prev: '#fanphotos .previous a'
			
			});
		
		});
		
		if (page == "post") {
				
			if (tag.match('set_lists')) {
			
				var copy = "Aliquam et nisl vel ligula consectetuer suscipit. Morbi euismod enim eget neque. Donec sagittis massa. Vestibulum quis augue sit amet ipsum laoreet pretium. Nulla facilisi. Duis tincidunt, felis et luctus placerat, ipsum libero vestibulum sem, vitae elementum wisi ipsum a metus. Nulla a enim sed dui hendrerit lobortis. Donec lacinia vulputate magna. Vivamus suscipit lectus at quam. In lectus est, viverra a, ultricies ut, pulvinar vitae, tellus. Donec et lectus et sem rutrum sodales. Morbi cursus. Aliquam a odio. Sed tortor velit, convallis eget, porta interdum, convallis sed, tortor. Phasellus ac libero a lorem auctor mattis. Lorem ipsum dolor sit amet, consectetuer adipiscing elit.";
			
			} else if (tag.match('reviews')) {
				
				var copy = "Aliquam et nisl vel ligula consectetuer suscipit. Morbi euismod enim eget neque. Donec sagittis massa. Vestibulum quis augue sit amet ipsum laoreet pretium. Nulla facilisi. Duis tincidunt, felis et luctus placerat, ipsum libero vestibulum sem, vitae elementum wisi ipsum a metus. Nulla a enim sed dui hendrerit lobortis. Donec lacinia vulputate magna. Vivamus suscipit lectus at quam. In lectus est, viverra a, ultricies ut, pulvinar vitae, tellus. Donec et lectus et sem rutrum sodales. Morbi cursus. Aliquam a odio. Sed tortor velit, convallis eget, porta interdum, convallis sed, tortor. Phasellus ac libero a lorem auctor mattis. Lorem ipsum dolor sit amet, consectetuer adipiscing elit.";
			
			} else {
				
				var copy = "Aliquam et nisl vel ligula consectetuer suscipit. Morbi euismod enim eget neque. Donec sagittis massa. Vestibulum quis augue sit amet ipsum laoreet pretium. Nulla facilisi. Duis tincidunt, felis et luctus placerat, ipsum libero vestibulum sem, vitae elementum wisi ipsum a metus. Nulla a enim sed dui hendrerit lobortis. Donec lacinia vulputate magna. Vivamus suscipit lectus at quam. In lectus est, viverra a, ultricies ut, pulvinar vitae, tellus. Donec et lectus et sem rutrum sodales. Morbi cursus. Aliquam a odio. Sed tortor velit, convallis eget, porta interdum, convallis sed, tortor. Phasellus ac libero a lorem auctor mattis. Lorem ipsum dolor sit amet, consectetuer adipiscing elit.";
			
			}
					
			$('<p>' + copy + '</p>').insertAfter('#post > h3').show();
		
		}
		
		$('#post.setlist h3 + label input').val('Set List');
		$('#post:has(h3.add) ul.actions li.modify').hide();
		
	} else if (page == "meetup" || page == "review" || page == "setlist") {
	
		memberPlaceholders();
		
		// Remove member tag/alias from links
		if (member) {
		
			var memberTag = "member/" + member + "/";
			
			$('ul.events a[href*='+memberTag+']').each(function() {
			
				$(this).attr('href', $(this).attr('href').replace(memberTag, ''));
			
			});
			
		}
				
	} else if (page == "reviews") {
	
		memberPlaceholders();
	
	} else if (page == "vip") {
	
		$('#sales div.widget-event dt:contains("City")').next('dd').show();
		$('#sales div.widget-event dt:contains("Pre-sale Tickets")').text("Fan Club Pre-sale Tickets");
		$('#sales div.widget-event dt:contains("VIP Tickets")').text("Fan Club VIP Packages");
		$('#sales div.widget-item label.tier').each(selectPackage);
		$('#sales div.widget-item label.tier').change(selectPackage);
		$('<small>Specific seat assignments will be given at VIP check-in. Purchasing Single Tickets in quantities of two (2) does guarantee that you will be seated together. Backstage VIP Packages are in Backstage member\'s name and are non-transferable, so please make sure you (the member) are able to attend.</small>').appendTo('#sales div.widget-item label.tier');
		$('#sales div.limited p').text('Sales will begin soon');
		$('#sales div.discontinued h4').empty().append('In The Circle VIP is sold out for this show! If you still want a VIP package, <a href="/vip?package=circleside">check out our Circleside VIP packages</a>, which may still be available for this show! If not, check back later - we will add more In The Circle VIP packages if they become available.');		
		
		$('li.circleside a').click(function() {
		
			window.scrollTo(0,0);
			$('ul.tabs li:last-child a').click();
			return false;
		
		});

		$('#sales div.topic em').text('Choose Your Package').show();
		$('#sales label.tier select option').removeAttr('title');
		
		if ($('#sales label.tier select option:last-child').text().match('Front')) {
			$('#sales label.tier select option:last-child').prependTo('#sales label.tier select');
		}

		if ($('#sales label.tier select').length > 0) {
			$('#sales label.tier select')[0].selectedIndex = 0;
		}

		$('#frontrow-tab, #inthecircle-tab').click(function() {
		
			$('#tourinfo').show();
			$('#circleside-buy').hide();
		
		});

		$('#circleside-tab').click(function() {
		
			$('#tourinfo').hide();
			$('#circleside-buy').show();
		
		});
		
		if (window.location.toString().match('circleside')) {

			$('#tourinfo').hide();
			$('#circleside-buy').show();
		
		}

		if ($('div.widget-event.browse').length > 0) {
			customizeEvents( $('div.widget-event') );
		}

	} else if (page == "tour") {
	
		$('#meadowlands div.widget-event.compact h3').wrapInner('<a href="/meadowlands"></a>');
		$('#o2 div.widget-event.compact h3').wrapInner('<a href="/o2"></a>');
		$('#inbox').cliqueAnnouncements();

	} else if (page == "travel") {
	
		var $insertion = $('img[title=Runaway Tours]').parent().next();
		$('#phone').contents().addClass('phone').insertAfter($insertion);
		$('h2.phone').show();
	
	}


/* CUFON FONT REPLACEMENT
----------------------------------------------------------------------------- */


	var din_condensed = [ 

		'#comments a#post-review',
		'#comments a#post-meetup',
		'#comments a#post-comment',
		'#sales a.action', 
		'#sales div.widget-item h3', 
		'#sales div.widget-event div.tickets dd', 
		'#sales div.widget-event div.tickets dt', 
		'#sales div.widget-event div.venue dd', 
		'#package a.action', 
		'#tickets h4', 
		'#tickets dt', 
		'#tickets dd', 
		'#tickets a.action', 
		'#page-vip h4.date', 
		'#circleside #sales h3',
		'#merchandise h3',
		'#merchandise a.visit',
		'#sidebar td.date',
		'#sidebar #show h4 strong', 
		'#sidebar #show a.date span',
		'ul.actions a.share'

	];

	var franklin_gothic = [ 

		'div:not(div.tabbed) > div.pane h3',
		'#vip h3', 
		'#sidebar div.widget-event.compact h3', 
		'#package h3', 
		'#package h4', 
		'#tickets h3', 
		'#show h3', 
		'#sidebar #meetups h3',
		'#show h4:not(#sidebar h4)', 
		'div.widget-alert h3', 
		'#announcements ul.headlines li a', 
		'#welcome h4', 
		'div.notice h4',
		'div.instructions h4',
		'div.widget-editorial.display > h4',
		'div.widget-editorial.display div.story h1',
		'div.widget-editorial.display div.story h2',
		'div.widget-editorial.display div.story h3',
		'div.widget-editorial.display div.story h4', 
		'div.widget-editorial.display div.story h5',
		'div.widget-editorial.display div.story h6',
		'ul.actions a.submit',
		'ul.comments ul.actions a',
		'#inbox > h3 span',
		'#inbox h4',
		'#rsvp h3.title',
		'#sidebar h3'
	];

	Cufon.replace(franklin_gothic, { fontFamily: 'Franklin Gothic', hover: true } );
	$(franklin_gothic.toString()).css('visibility', 'visible');

	Cufon.replace(din_condensed, { fontFamily: 'DIN Condensed', hover: true } );
	$(din_condensed.toString()).css('visibility', 'visible');


/* LOAD PAGINATED BANNERS
----------------------------------------------------------------------------- */


	$.get('/feeds/banners', function(data) {

		// Load banners
		$(data).find('unit').each(function() {

			// Medium Rectangle House Ad (Tour Header)
			if ($(this).find('name').text() == "tour-header") {

				addBanners($(this), $('#tour-header-ad'));

			} else if ($(this).find('name').text() == "small_rectangle") {

			//	addBanners($(this), $('div.ad.house.smallrectangle'));
				
			}

		});

		$('#tour-header-ad ul.banners').after('<div class="pager"><div>').cycle({

			fade: true,
			speed: 400,
			timeout: 9000,
			pager: 'div.pager div'

		});

		$('#tour-header-ad div.pager div').each(function() {

			$(this).css('float', 'left');
			$(this).css('width', $(this).width() + 'px');
			$(this).css('float', 'none');
			$(this).children('a:last-child').addClass('last');

		});

	});


/* END PAGE LOAD
----------------------------------------------------------------------------- */


	});


/* FUNCTION: SELECT VIP PACKAGE
----------------------------------------------------------------------------- */


	function selectPackage() {

		if ($('label.quantity small').length == 0) {
			$('<small>Maximum of 2 Per Member</small>').appendTo('label.quantity');
		}

		if ($(this).find('option:selected').text().match('Front Row')) {
			$('label.quantity').hide();
			$('div.tabbed').tabs('select', '#frontrow');
		} else {
			$('label.quantity').show();
			setTimeout(function() {
				$('div.tabbed').tabs('select', '#inthecircle');
			}, 500);

		}
	
	}


/* FUNCTION: CUSTOMIZE EVENTS
----------------------------------------------------------------------------- */


	function customizeEvents($this) {

		if (!$this.hasClass('customized')) {

			$this.each(function() {
			
				$(this).children('table').children('tbody').children('tr').each(function() {
			
					$(this).children('td.sales').each(function() {
						$(this).children('span').text( $(this).children('span').text().replace(/Pre-sale/, 'Fan Club Pre-sale').replace(/VIP Ticket/, 'Fan Club VIP Package') );
					});
	
					$(this).children('td.sales').wrapInner('<p></p>');
					$(this).children('td.end').contents().appendTo( $(this).children('td.start') );
					$(this).children('td.end').remove();
	
					var $tickets = $(this).children('td.tickets').children('ul');

					if (plan != "backstage_jbj") {
						$tickets.children('li.presale').children('a').text('Buy Fan Club Pre-sale Tickets').attr('href','/join?alert=public-presale');
					} else {
						$tickets.children('li.presale').children('a').text('Buy Fan Club Pre-sale Tickets');
					}

					$tickets.children('li.vip').children('a').text('Buy Fan Club VIP Packages');
					$tickets.children('li.presale').children('span').text('Fan Club Pre-sale Tickets:');
					$tickets.children('li.vip').children('span').text('Fan Club VIP Packages:');
					
					if ($tickets.children('li.vip').children('span').length == 0 && $tickets.children('li.vip').children('a').length == 0) {
		
						var $date = $tickets.children('li.vip').children('em');
						$tickets.children('li.vip').empty().append('<span>Fan Club VIP Packages: </span>').append($date);
		
					}
	
					if (plan != "backstage_jbj" && page == "vip") {
						$('tickets').children('li.vip').children('a').attr('href','/join');
					} else if (plan != "backstage_jbj") {
						$('tickets').children('li.vip').children('a').attr('href','/vip');
					}

					var $date = $(this).children('td.date');
					var $tickets = $tickets.children('li');

					Cufon.replace($date, { fontFamily: 'DIN Condensed', hover: true } );
					Cufon.replace($tickets, { fontFamily: 'DIN Condensed', hover: true } );
	
				});

				$this.find('th.end').remove();
				$this.addClass('customized');
		
			});

		}

	}


/* FUNCTION: TABS
----------------------------------------------------------------------------- */


	function tabs() {

		$('div.tabbed').each(function() {

			$panel = $(this);

			// REMOVE TABS IF CORRESPONDING PANES IS NIL
			$panel.find('ul.tabs li').each(function() {

				$tab = $(this);
				var paneID = $tab.children('a').attr('href');

				// JQUERY TAB
				if (paneID.match(/^#/) && $tab.parent().siblings(paneID).length == 0) {
	
					$tab.remove();
	
				}
				
			});

		});

		$('div.tabbed').not('.static').tabs({

			fx: false,
			show: function(event, ui) {

				customizeEvents( $( $(ui.tab).attr('href') ).children('div.pane').children('div.widget-event') );
				
			}

		});
		
	}
	

/* FUNCTION: IMPORTANT ANNOUNCEMENTS
----------------------------------------------------------------------------- */


	function announcements() {
	
		if ($('#announcements ul.headlines').children().length > 1) {
	
			$('#announcements ul.headlines').after('<ul class="pager"><li><a class="prev" href="#">Previous</a></li><li><a class="next" href="#">Next</a></li></ul>').cycle({
		
				fx: 'scrollVert',
				speed: 200,
				timeout: 5000,
				next: '#announcements a.next', 
				prev: '#announcements a.prev',
				pause: 1
		
			});

		} else {
		
			$('#announcements ul.headlines li').show();
		
		}
		
	}


/* FUNCTION: MAILING LIST
----------------------------------------------------------------------------- */


	function mailinglist() {

		$('a#join-mailing-list').toggle(function() {
		
			$(this).parent().animate( { height: "155px" }, 400 );
			$(this).addClass('cancel');
			$(this).text('Hide The Mailing List');
			return false;
			
			}, function () {
		
			$(this).parent().animate( { height: "50px" }, 400 );
			$(this).removeClass('cancel');
			$(this).text('Join The Mailing List');
			return false;
			
		});
		
	}


/* FUNCTION: COMMENTS
----------------------------------------------------------------------------- */


	function comments() {

		$('#comments a#post-comment').toggle(function() {

			$(this).addClass('expanded');
			$('#comments div.widget-comment.modify').show();
			return false;

		}, function() {

			$(this).removeClass('expanded');
			$('#comments div.widget-comment.modify').hide();
			return false;

		});

		$('#comments #reviews div.widget-blog.placeholder p').text("No one's made any reviews of this event yet. Would you like to write a review?");
		$('#comments #meetups div.widget-blog.placeholder p').text("No one's posted a meetup yet. Do you have one to post?");

	}


/* FUNCTION: BANNERS
----------------------------------------------------------------------------- */


	function addBanners(unit, selector) {

		var banners = '<ul class="banners">';
		$unit = unit;
		$selector = selector;

		$unit.find('banner').each(function() {

			if ($(this).find('status').text() == "Publish") {

				var url = $(this).children('url').text();
				var image = $(this).children('image').text();
				var caption = $(this).children('description').text();

				if (url == "" || url == "http://") {

					banners += '<li><img src="' + image + '" alt="' + caption + '" /></li>';

				}

				else {

					banners += '<li><a href="' + url + '"><img src="' + image + '" alt="' + caption + '" /></a></li>';

				}

			}

		});

		banners += '</ul>';

		if (banners.length > 0) {

			$(banners).appendTo($selector);

		}

	}
	
	
/* FUNCTION: MEMBER PROFILE PLACEHOLDERS
--------------------------------------------------------------------------- */


	function memberPlaceholders() {

		$('div.widget-member a.picture, div.widget-friend a.picture, div.widget-comment a.picture, .widget-blog a.picture').each(function() {

			if ($(this).children('img').attr('src').match('placeholder.gif')) {
			
				$(this).children('img').attr('src', $(this).children('img').attr('src').replace('placeholder.gif', 'placeholder-member' + Math.round(Math.random()*3 + 1) + '.gif'));
			
			}

		});

	}