// Search refinements
$(document).ready(function() {
  
	$('#composerArticle a.more').click(function(){
		if($(this).hasClass('less')){
			$('#composerArticle').css('height', '230px');			
			$(this).html('Show more').removeClass('less');
		} else {
			$('#composerArticle').css('height', 'auto');
			$(this).addClass('less').html('Show less');
			return false;			
		}
	});
	
	$('#bio_tabs').tabs();
	$('#info_tabs').tabs();	
	
  $('.alternate li.notdate:even').addClass('even'); 
  $('.zebra li:even').addClass('even');   
  /*two following functions currently also lives in playlists.js */
	$('.listing li:even').addClass('even');
	$('.playPlaylist').click(function(){
		var id = $(this).attr('rel');
		url = PlayerPopupUrl(id);
		popWindow=openwin.open(url,'player',player_options);popWindow.focus();
		return false;
	});
  $('.listing li').hover(function(){
    $(this).addClass('hovering');
  }, function(){
    $(this).removeClass('hovering');    
  });	
	/* end of tmp duplication */
	
	
	$("#genre_tabs").tabs();
	
	$(".buyalbumList li:odd").addClass('oddrow');

  $(".lightbox").lightbox();

	$(".scoremodal").click(function(){	
		$('#scoreviewer .toolbar a.buy').html($(this).siblings('a.buy').html()).attr('href', $(this).siblings('a.buy').attr('href'));
		$('#scoreviewer .toolbar strong').html($(this).parent('span').siblings('h3').html());
		$('#scoreviewer').show();
		$('#scoreviewer .content img').attr('src', $(this).attr('href'));
		return false;
	});
	
	$("#scoreviewer .close").click(function(){
		$('#scoreviewer').hide();
		return false;
	});
	
	if(!$("#search-results-refinements").size()) return false;
	
	// Toggle category "drawers" for level1
	$('#search-results-refinements div').hover(function() {
		
		// Mouse over
		$(this).addClass('active');
		$(this).find('ul.level1').slideDown('fast');
		//$(this).find('ul.level1').show();
		
	}, function() {
		
		// Mouse out
		$(this).find('ul.level1').slideUp('fast', function() {
			
			$(this).parent('div').removeClass('active');
			
		});
		//$(this).removeClass('active');
		//$(this).find('ul.level1').hide();
		
	});
	
	// Toggle category "drawers" for level2
	$('#search-results-refinements li.children').hover(function() {
		
		// Mouse over
		$(this).find('ul.level2').slideDown('fast');
		//$(this).find('ul.level2').show();
		$(this).css('z-index', '2');
		
	}, function() {
		
		// Mouse out
		$(this).find('ul.level2').slideUp('fast');
		//$(this).find('ul.level2').hide();
		$(this).css('z-index', '1');
		
	});
  
  // display and hide album tracks from search results
  $('a.toggle_tracks').click(function() {
    resultTable   = $(this).parents("div.search_result_wrapper");
    toggleWrapper = $(this).parents("div.search_album_footer");
    resultTable.find('td.trackRowCell').toggle();
    if ($(this).text() == 'Show Tracks') {
      $(this).text('Hide Tracks');
      $(this).css("background-image", "url(/images/arrow_up.gif)");
      $(this).css("background-repeat", "no-repeat");
    } else {
      $(this).text('Show Tracks');
      $(this).css("background-image", "url(/images/arrow_down.gif)");
      $(this).css("background-repeat", "no-repeat");
    }
    return false;
  });
});



/* Event delegation */
jQuery.delegate = function(rules) {
  return function(e) {
		for (var selector in rules) {
		  var target = $(e.target);
      if (target.is(selector)) return rules[selector].apply(this, $.makeArray(arguments));
  	}
	}
}


/* Center on Screen */
jQuery.fn.center = function(params) {

		var options = {

			vertical: true,
			horizontal: true

		}
		op = jQuery.extend(options, params);

   return this.each(function(){

		//initializing variables
		var $self = jQuery(this);
		//get the dimensions using dimensions plugin
		var width = $self.width();
		var height = $self.height();
		//get the paddings
		var paddingTop = parseInt($self.css("padding-top"));
		var paddingBottom = parseInt($self.css("padding-bottom"));
		//get the borders
		var borderTop = parseInt($self.css("border-top-width"));
		var borderBottom = parseInt($self.css("border-bottom-width"));
		//get the media of padding and borders
		var mediaBorder = (borderTop+borderBottom)/2;
		var mediaPadding = (paddingTop+paddingBottom)/2;
		//get the type of positioning
		var positionType = $self.parent().css("position");
		// get the half minus of width and height
		var halfWidth = (width/2)*(-1);
		var halfHeight = ((height/2)*(-1))-mediaPadding-mediaBorder;
		// initializing the css properties
		var cssProp = {
			position: 'absolute'
		};

		if(op.vertical) {
			cssProp.height = height;
			cssProp.top = '50%';
			cssProp.marginTop = halfHeight;
		}
		if(op.horizontal) {
			cssProp.width = width;
			cssProp.left = '50%';
			cssProp.marginLeft = halfWidth;
		}
		//check the current position
		if(positionType == 'static') {
			$self.parent().css("position","relative");
		}
		//aplying the css
		$self.css(cssProp);


   });

};

