// determine if JS present
document.documentElement.className = "jsEnabled";
if (navigator.appVersion.indexOf("Mac")!=-1) {
	document.documentElement.className += " mac";	
} else {
	document.documentElement.className += " notMac";		
}

$().ready(function(){

	$("A[rel='external'], .external A").attr('target', '_blank');
	$("A[rel='print']").click(function(){
		window.print();
		return false;
	});
	
	$('#slider').carousel({speed:5000});
	$('#block-lmfm_gigs-17-slider').carousel({speed:2500});
	$('#rhs-promo').carousel({speed:2500});
	$('#small-slider').carousel({speed:5000});
	$('#video-slider').carousel({speed:10000, rotate:false});
	
	preloader_init(); // initialize preloader
	block_collapser(); // bind collapsible content blocks to their respective buttons
	gig_blocks_init(); // for quick gig finder and recommended gigs buttons
	
	img_rotate_init();
	band_image_gallery();
	searchInput(); // superdash search input hide text on click
	ajax_events();
	ticket_collapser();
	admin_premium_panel_collapser();
	search_zebra();
	importBandsTitle();
	
	//$('.tooltip').show().animate({opacity:1}, 5000).fadeOut('slow');
	
});

/*
	TO-DO sweep through and get rid of all junk
*/

function gig_blocks_init() {
	/*
        $('#upcoming-gig-extra, #gig-search-closer').hide();
	$('#gig-search-opener').click(function(){
		$('#upcoming-gig-extra, #gig-search-closer').show();
		$(this).hide();
	});
	$('#gig-search-closer').click(function(){
		$('#upcoming-gig-extra').hide();
		$('#gig-search-opener').show();
		$(this).hide();
	});
        */
	$('#block-views-gig_listings-block_4').children().hide();
	$('#block-views-gig_listings-block_4').prepend('<div id="hrg-button-holder"><h2 class="red popup">Hot Recommended Gigs this month<a id="show-hrg-button" class="toggler">+</a></h2></div>');

	$('#block-views-artist_listings-block_3').children().hide();
	$('#block-views-artist_listings-block_3').prepend('<div id="hrg-button-holder"><h2 class="red popup">2011\'s Ones-to-Watch<a id="show-hrg-button" class="toggler">+</a></h2></div>');
	$('#block-views-artist_listings-block_9').children().hide();
	$('#block-views-artist_listings-block_9').prepend('<div id="hrg-button-holder"><h2 class="red popup">2010\'s Ones-to-Watch<a id="show-hrg2-button" class="toggler">+</a></h2></div>');
	$('#block-views-artist_listings-block_10').children().hide();
	$('#block-views-artist_listings-block_10').prepend('<div id="hrg-button-holder"><h2 class="red popup">2009\'s Ones-to-Watch<a id="show-hrg3-button" class="toggler">+</a></h2></div>');
	$('#block-views-artist_listings-block_11').children().hide();
	$('#block-views-artist_listings-block_11').prepend('<div id="hrg-button-holder"><h2 class="red popup">2008\'s Ones-to-Watch<a id="show-hrg4-button" class="toggler">+</a></h2></div>');


	//Initially expanded
  //$('#block-views-gig_listings-block_11').children().hide();
	$('#block-views-gig_listings-block_11').prepend('<div id="hrg-button-holder"><h2 class="red popup">See All Upcoming Gigs<a id="show-hrg-button" class="toggler">+</a></h2></div>');
    $('#block-views-gig_listings-block_11 #hrg-button-holder').hide();
  
	$('#block-views-gig_listings-block_12').children().hide();
	$('#block-views-gig_listings-block_12').prepend('<div id="hrg-button-holder"><h2 class="red popup">See All Past Gigs<a id="show-hrg2-button" class="toggler">+</a></h2></div>');
	//$('#block-views-gig_listings-block_14').children().hide();
	$('#block-views-gig_listings-block_14').prepend('<div id="hrg-button-holder"><h2 class="red popup">See All Upcoming Gigs<a id="show-hrg-button" class="toggler">+</a></h2></div>');
	$('#block-views-gig_listings-block_14 #hrg-button-holder').hide();
	$('#block-views-gig_listings-block_15').children().hide();
	$('#block-views-gig_listings-block_15').prepend('<div id="hrg-button-holder"><h2 class="red popup">See All Past Gigs<a id="show-hrg2-button" class="toggler">+</a></h2></div>');
	
  //$('#block-views-gig_listings-block_16').children().hide();
	//$('#block-views-gig_listings-block_16').prepend('<div id="hrg-button-holder"><h2 class="red popup">See All Gigs on this Tour<a id="show-hrg-button" class="toggler">+</a></h2></div>');
  
	$('#block-views-gig_listings-block_19').children().hide();
	$('#block-views-gig_listings-block_19').prepend('<div id="hrg-button-holder"><h2 class="red popup">See All Gigs on this Tour<a id="show-hrg-button" class="toggler">+</a></h2></div>');

	$('body.news #block-lmfm_gigs-4 div').hide();
	$('body.news #block-lmfm_gigs-4 #hrg-button-holder').show();//.prepend('<div id="hrg-button-holder"><h2 class="red popup">See All Upcoming Tour Dates<a id="show-hrg-button" class="toggler">+</a></h2></div>');
	
	$('#show-hrg-button, #hide-hrg-button').click(function() {
		$('#block-views-gig_listings-block_4').children().toggle('fast');
		$('#block-views-gig_listings-block_11').children().toggle('fast');
		$('#block-views-gig_listings-block_14').children().toggle('fast');
		$('#block-views-gig_listings-block_16').children().toggle('fast');
		$('#block-views-gig_listings-block_19').children().toggle('fast');
		$('#block-views-artist_listings-block_3').children().toggle('fast');
		$('body.news #block-lmfm_gigs-4 div').toggle('fast');
	});	
	$('#show-hrg2-button, #hide-hrg2-button').click(function() {
		$('#block-views-gig_listings-block_12').children().toggle('fast');
		$('#block-views-gig_listings-block_15').children().toggle('fast');
		$('#block-views-artist_listings-block_9').children().toggle('fast');
	});
	$('#show-hrg3-button, #hide-hrg3-button').click(function() {
		$('#block-views-artist_listings-block_10').children().toggle('fast');
	});
	$('#show-hrg4-button, #hide-hrg4-button').click(function() {
		$('#block-views-artist_listings-block_11').children().toggle('fast');
	});
}

function img_rotate_init() {

    parent = $('.liveloud .block-content');
    parent.find('.teaser-image a:not(:first)').hide();
    
    parent.bind('mouseenter', function(){
      $(this).data('go', true);
      rotate($(this));
    });
    
    parent.bind('mouseleave', function(){
      $(this).data('go', false);
      $(this).find(".teaser-image a").stop(true,true).hide();
      $(this).find(".teaser-image a:first").show();
    });   
    
}

function rotate(block) {
    amount = block.find('.teaser-image a').length-1;
    current = block.find('.teaser-image a:visible');
    
    index = current.parent().children().index(current);
    
    if(amount == index)
      next = block.find('.teaser-image a:eq(0)');
    else
      next = block.find('.teaser-image a:eq('+(index+1)+')'); 
    
    if(amount) {
      current.fadeOut({
        duration: 400, complete: function() {
          next.fadeIn({
            duration: 400, complete: function() {
              next.animate({opacity: 1.0}, 1500);
              if(block.data('go')) rotate(block);
            }
          });
        }
      }); 
    }
}


// Maintains the block collapsing 
function block_collapser() {
	$('.block.collapsible H2 A:not(.'+site+'_pages-processed)').addClass(site + '_pages-processed').bind('click',function(){
		if($(this).attr('rel') == 'expand') {
			$(this).parent('H2').parent('.block').removeClass('collapsed').addClass('expanded').children('.content, .block-wrap').slideDown('slow');
			$(this).attr('rel','collapse').html('-');			
			$(this).addClass('toggler-expanded');			
			return false;
		} else {
			$(this).attr('rel','expand').html('+');
			$(this).parent('H2').parent('.block').children('.content, .block-wrap').slideUp('slow',function(){
				$(this).parent('.block').removeClass('expanded').addClass('collapsed');
			});
      $(this).removeClass('toggler-expanded');			
			return false;
		}
		return false;
	});
}

function ticket_collapser() {
	$('.supplier-block .ticket').hide();
	$('.supplied-block-identificator H2 A:not(.'+site+'-processed)').addClass(site+'-processed').click(function(){
		if($(this).html() == '+') {
			$(this).html('-');
		} else {
			$(this).html('+');
		}
		$(this).parent('H2').parent('LI').nextAll('LI.ticket').toggle('slow');
		return false;
	});
}

function admin_premium_panel_collapser() {
	if($('#edit-field-panel-template-value').attr('value') == 'uber') {	
		$('.group-panel-primary').show();
		$('.group-panel-left').hide();
		$('.group-panel-right').hide();
		$('.group-panel-sub1').hide();
		$('.group-panel-sub2').hide();			
	};
	if($('#edit-field-panel-template-value').attr('value') ==  'duo') {	
		$('.group-panel-primary').hide();
		$('.group-panel-left').show();
		$('.group-panel-right').show();
		$('.group-panel-sub1').hide();
		$('.group-panel-sub2').hide();				
		};
	if($('#edit-field-panel-template-value').attr('value') ==  'quad_right') {	
		$('.group-panel-primary').show();
		$('.group-panel-left').hide();
		$('.group-panel-right').show();
		$('.group-panel-sub1').show();
		$('.group-panel-sub2').show();				
	};
	if($('#edit-field-panel-template-value').attr('value') ==  'quad_left') {	
		$('.group-panel-primary').show();
		$('.group-panel-left').show();
		$('.group-panel-right').hide();
		$('.group-panel-sub1').show();
		$('.group-panel-sub2').show();				
	};
	$('#edit-field-panel-template-value').change(function(){
		if($(this).attr('value') == 'uber') {	
			$('.group-panel-primary').show();
			$('.group-panel-left').hide();
			$('.group-panel-right').hide();
			$('.group-panel-sub1').hide();
			$('.group-panel-sub2').hide();			
		};
		if($(this).attr('value') == 'duo') {	
			$('.group-panel-primary').hide();
			$('.group-panel-left').show();
			$('.group-panel-right').show();
			$('.group-panel-sub1').hide();
			$('.group-panel-sub2').hide();				
		};
		if($(this).attr('value') == 'quad_right') {	
			$('.group-panel-primary').show();
			$('.group-panel-left').hide();
			$('.group-panel-right').show();
			$('.group-panel-sub1').show();
			$('.group-panel-sub2').show();				
		};
		if($(this).attr('value') == 'quad_left') {	
			$('.group-panel-primary').show();
			$('.group-panel-left').show();
			$('.group-panel-right').hide();
			$('.group-panel-sub1').show();
			$('.group-panel-sub2').show();				
		};
	});
	
}

// search_zebra

function search_zebra() {
	$('.search-results DT:odd, .search-results DD:odd, .block-apachesolr_search .item-list LI:odd, .block-apachesolr .item-list LI:odd, #gig-booking-booking-form .form-radios .form-item:odd').addClass('even');
	$('.search-results DT:even, .search-results DD:even, .block-apachesolr_search .item-list LI:even, .block-apachesolr .item-list LI:even, #gig-booking-booking-form .form-radios .form-item:even').addClass('odd');
}

function band_image_gallery() {
	$('A[rel="band_gallery"]:not(.'+site+'-processed)').addClass(site + '-processed').click(function(){
		
		var old_thumb = $(this).children('img:eq(0)').attr('src');
		var old_full  = $('.node .full-image IMG').attr('src');
		
		var new_thumb = $('#band_gallery').attr('main_thumb');
		var new_full  = $(this).attr('href');
		
		$('#band_gallery').attr('main_thumb',old_thumb);
		
		$('.node .full-image IMG').attr('src',new_full);
		$(this).attr('href',old_full).children('IMG:eq(0)').attr('src',new_thumb);
		
		return false;
	});
}

function front_scroller(){
	$("#content-intro").css('display', 'block');
	$("#content-intro").jCarouselLite({
         auto: 800,
   		 speed: 1300,
		 visible: 2.695,
		 circular: true
    });
}

function importBandsTitle() {
	var default_text = 'Your Last.fm Username';	
	$('#edit-lastfm-username').attr('value',default_text);
	$('#edit-lastfm-username').click(function(){
		if($(this).attr('value') == default_text) {	$(this).attr('value',''); };
	});
	$('#edit-lastfm-username').blur(function(){
		if($(this).attr('value') == '') {	$(this).attr('value',default_text); };
	});
}

function searchInput() {
  
	$('#edit-search-block-form-1-wrapper INPUT').focus(function(){
		$(this).val('');
		$(this).css('color','#000000');
	});
        
	$('#edit-range-start-wrapper INPUT').focus(function(){
		//$(this).val('');
		$(this).css('color','#000000');
	});
	$('#edit-range-end-wrapper INPUT').focus(function(){
		//$(this).val('');
		$(this).css('color','#000000');
	});
        
        /*Stuff specifically for the gigs landing page*/
        $('#edit-band-wrapper input').focus(function(){
		$(this).val('');
                $(this).css('color','#000000');
	});
        
        $('#edit-backyard-1-wrapper input').focus(function(){
		$(this).val('');
                $(this).css('color','#000000');
	});
}

function preloader_show() {
	$('#sb-container').css('visibility','visible').css('width','100%').css('height', '100%').show();
	$('#sb-overlay').css('opacity',0.7).css('background','#000');
	$('#ajax-overlay').show();
	$('FORM').addClass('unsubmit');
}
function preloader_hide() {
	$('#ajax-overlay').hide('slow');	
	$('#sb-container').css('visibility','hidden').css('width','0').css('height', '0').hide();
	$('#sb-overlay').css('opacity',0);
	$('FORM').removeClass('unsubmit');
}

function preloader_add() {
	if ($('#ajax-overlay').length == 0) {
		if(site == 'loud') {
			message = 'Please wait a while Live&Loud reloads';
		} else {
			message = 'Please wait a while LMFM reloads';
		}
		$('body').append('<div id="ajax-overlay" style="display: none;"><a id="button-close" href="#"></a><p>'+message+'</p><img src="'+ base_path +'sites/all/js/loader.gif" alt="Loading"/></div>')
	}
	$('#ajax-overlay #button-close').click(preloader_hide);
}

function preloader_init() {
	$('FORM.unsubmit').submit(function(){
		alert('Another form is being submitted as we speak. Give it a rest for a second!');
		return false;
	});
	preloader_add();
	$('BODY').ajaxSuccess(function() {
	 preloader_hide(); 
	}).ajaxError(function(){
	 preloader_hide(); 
	}).ajaxStop(function(){
	 preloader_hide(); 
	}).ajaxStart( function(){
		preloader_show();
	}).ajaxSend( function() {
		preloader_show();
	});
}

function ajax_events() {
	ajax_calendar_links();
	
	//ajax_pagination_events();
	//ajax_news_events();
	//ajax_listings_events();
	//ajax_venues_events();
	//ajax_artists_events();
	//ajax_reviews_events();
	//ajax_review_node_events();	
	//ajax_gallery_events();
	//ajax_user_events();
	//ajax_favs_events();
	//ajax_profile_events();
	
}

function ajax_profile_events() {
	$('.p-email').unbind();
	$('.p-email').click(function() {
//		ajax_place_loader();
		$.ajax({
			type: "GET",
			url: base_path +'api/user/email?action='+ ($(this).hasClass('public') ? 'hide' : 'show'),
			success: function(data, textStatus){
				if (textStatus == 'success') {
					$('#p-email').html(data);
					ajax_events();
//					ajax_hide_loader();
				}
			},
			error: function() {
//				();
			}
		});
		return false;
	});
	$('.p-gigs').unbind();
	$('.p-gigs').click(function() {
//		ajax_place_loader();
		$.ajax({
			type: "GET",
			url: base_path +'api/user/gig-alerts',
			success: function(data, textStatus){
				if (textStatus == 'success') {
					$('#p-gigs').html(data);
					ajax_events();
//					ajax_hide_loader();
				}
			},
			error: function() {
//				ajax_hide_loader();
			}
		});
		return false;
	});
}

function ajax_calendar_links() {
	$('.calendar-switch').unbind();
	$('.calendar-switch').click(function() {
		ajax_calendar_links_click(this);
		return false;
	});
}

function ajax_calendar_add_remove(elem) {
	var block = $(elem).parents('.block').get(0);
	$(block).css('min-height', $(block).height() +'px');
	block_id = $(block).attr('id');
	block_attrs = block_id.split('-');
	$('#'+block_attrs[0] +'-'+ block_attrs[1] +'-13').css('min-height', $('#'+block_attrs[0] +'-'+ block_attrs[1] +'-13').height() +'px');
	ajax_calendar_transition(elem);
	ajax_calendar_transition($('#'+block_attrs[0] +'-'+ block_attrs[1] +'-13 .calendar-switch').get(0));
	$.ajax({
	    type: "GET",
	    url: $(elem).attr('href') +'&ajax=1',
		success: function() {
			ajax_element(base_url + base_path + path + (get_params == '' ? '?' : '?'+ get_params +'&') +'module='+ block_attrs[1] +'&delta='+ block_attrs[2] +'&region=under', '#'+ block_id, false);
			ajax_element(base_url + base_path + path + '?module='+ block_attrs[1] +'&delta=13&region=above', '#'+block_attrs[0] +'-'+ block_attrs[1] +'-13', false);
		}
	});
}

function ajax_calendar_links_click(elem) {
	// To get the block you need to specify module, delta and region (region allows us to check if user is allowed to see the block)
	var block = $(elem).parents('.block').get(0);
	var delta = ajax_calendar_delta(block);
	$(block).css('min-height', $(block).height() +'px');
	ajax_calendar_transition(elem);
	var url = ajax_get_url($(elem).attr('href') +'&module='+site+'_block&region='+ (delta == 14 || delta == 12 ? 'under' : (delta == 43 ? 'right' : 'right')) +'&delta='+ delta);
	$.ajax({
	    type: "GET",
	    url: url,		
		success: function(data, textStatus) {
			
			if (textStatus == 'success') {
				$('#block-'+site+'_block-'+ delta).replaceWith(data);
				ajax_update_path(elem);
				ajax_events();
			}
		}
	});
}

function ajax_update_path(elem) {
	if ($(elem).parent('.pager').length == 0 && $(elem).parent('#content-primary').length) {
		return;
	}
	var link = $(elem).attr('href').split('?');
//	alert(link.length);
	get_params = link[1];
//	var bpi = link[0].indexOf(base_path);
//	if (bpi == -1 || (bpi > 0 && base_path != '/')) {
//		path = link[0];
//	}
//	else {
//		path = link[0].replace(path, '');
//	}
}

function ajax_calendar_delta(block) {
	var block_id = $(block).attr('id');
	block_id = block_id.split('-');
	return block_id[2];
}

function ajax_calendar_transition(elem) {
	var item = $(elem).parents('.calendar-custom').get(0);
	$(item).empty();
	var progress = new Drupal.progressBar('updateprogress');
  	$(item).prepend(progress.element);
}

function ajax_update_user_calendar() {
	if ($('#block-'+site+'_block-13').length) {
		$.ajax({
		    type: "GET",
		    url: ajax_get_url(base_path + path +'?region=right&delta=13&module='+site+'_block'),
			success: function(data, textStatus) {
				if (textStatus == 'success') {
					$('#block-'+site+'_block-13').replaceWith(data);
				}
			}
		});
	}
}

function ajax_update_calendar_count(elem, nid) {
	var calendar = $($(elem).parents('.event-teaser')).find('.cal-no').get(0);
	$.ajax({
	    type: "GET",
	    url: base_path +'calendar/count/'+ nid,
		success: function(data, textStatus) {
			if (textStatus == 'success') {
				$(calendar).html(data);
			}
		}
	});
}

function ajax_build_query(form_id) {
	var query = '';
	$('#'+ form_id +' :input').each(function() {
		var name = $(this).attr('name').split('_');
		if (($(this).attr('type') == 'checkbox' || $(this).attr('type') == 'radio')) {
			if (this.checked) {
				query += name[1] +'=1&';
			}
		}
		else {
			if (this.value != 0 && name[1] && name[1] != 'id' && name[1] != 'token') {
				query += name[1] + (this.multiple ? '[]' : '') +'='+ this.value +'&';
			}
		}
	});
	return query;
}

function ajax_get_url(url) {
	var bpi = url.indexOf(base_path);
//	alert(url);
	if (url.indexOf(base_url) >= 0) {
		full_path = base_url + base_path;
	}
	else {
		full_path = base_path;
	}
	if (bpi == -1 || (bpi > 0 && full_path == '/')) {
		url = 'ajax/' + url;
	}
	else {
		re = new RegExp(full_path);
		url = url.replace(re, full_path + 'ajax/');
	}
//	alert(url);
	return url;
}

function ajax_element(url, elem_path, loader) {
	if (loader) {
//		ajax_place_loader();
	}
	url = ajax_get_url(url);
	$.ajax({
	    type: "GET",
	    url: url,//((bpi == -1 || (bpi > 0 && base_path != '/')) ? base_path : '') + 
	    
		success: function(data, textStatus) {
			ajax_element_update(data, textStatus, elem_path, url);
//			ajax_hide_loader();
		},
		error: function() {
//			ajax_hide_loader();
		}
  	});
}

function ajax_place_loader() {
	$('#ajax-overlay').show().css('position','fixed');
}

function ajax_hide_loader() {
	$('#ajax-overlay').hide();
	$('#ajax-overlay').css('position', 'relative');
	//$('#ajax-overlay').css('left', '0px');
	//$('#ajax-overlay').css('top', '0px');
}

function ajax_element_update(data, status, elem_path) {
	if (status == 'success') {
		$(elem_path).html(data);
		$(elem_path).unbind();
		ajax_events();
	}
	
}
