/**
 * Artilinki spaces JS methods
 * 
 * This file contains all the method used in space's pages.
 * This file use and require jquery plugin  
 * 
 * @author fl0r3nt
 */
$(document).ready(function() {
  /* Instantiate objects lists if necessary */
  if ($('#objectList').length > 0) { initObjectList();}
	
  /* Launch the carousel if necessary */
  $(document).find('div.carrousel').each(function(i, val) {
		$(val).carousel({elt: val, id: i});
  });
	
  /* Launch the big carousel if necessary */
  $(document).find('div.carrousel2').each(function(i, val) {
		$(val).carousel({elt: val, id: 100, type: 'big'});
  });
	
  /* Buttons arround for listing */
  $('.addElement').each(function(i, val){
		$(val).click(function(event) {
		  $(val).prev('.topPg').addClass('topPgActive');
		  $(val).bind('mouseout', function(event){
			$(val).prev('.topPg').removeClass('topPgActive');
		  });
		  $(val).next('spaceCreationsMenu').bind('mouseout', function(event){
			$(val).prev('.topPg').removeClass('topPgActive');
		  });
		});
  });
  
  //Adjust vertical align on player buttons
  var playButtons = $('a.spaceDescriptionPlayAll');
  if (playButtons.length > 0) {
		playButtons.each(function(i, elt){
			var container = $(elt).find('span.spaceDescriptionPlayAllContent');
			var content = container.find('span');
			var pad = Math.round((container.outerHeight() - content.height())/2);
			pad = pad < 0 ? 0 : pad;
			content.css('padding-top',pad+'px');
		});  
  }
	
	$('#recent_medias .media').bind('click', function(e) { 
		e.preventDefault();
		RecentMediaOnClick($(this));
	});
	
	var RecentMediaOnClick = function(elem) {
		contentType = "search";
		contentReq = $('#player_params').text();
		startId = $('#recent_medias a.media').index(elem);
		startPos = 0;
		lang = artilinki.options.user.culture;
		
		var url = artilinki.options.url_abs_root + lang + "/play_ajax/" + contentType + "/"
							+ contentReq + "/" + startId + "/" + startPos;

		$('.spaceDescriptionText').fadeOut();

		$media = $('<div class="spaceDescriptionText" id="inline_player" style="display:none"></div>');
		$media.insertAfter('.spaceDescriptionImg');
		
		$.get(url, function(data, textStatus, xhr) {
			$('#inline_player').append($(data))
				.show('blind')
				.prepend($('<span id="hide_player">'+ artilinki.options.space.close_player +'</span>'));
			$('#hide_player').bind('click', function() {
				$('#inline_player').remove();
				$('.spaceDescriptionText').not("#inline_player").fadeIn();
			});
		});
	}
	
	$('#objectList .media').bind('click', function(e) {
	  e.preventDefault();
    ListingMediaOnClick($(this));
	});
	
	var ListingMediaOnClick = function(elem) {
	    params = $('#listing_player_params').text();
			offset = $('#listing_player_params').attr('class').match(/\d+/)[0];
	    startId = $('#objectList .listingRowWrapper')
	        .index($(elem).parents('.listingRowWrapper'));
	    culture = artilinki.options.user.culture;

			startId = parseInt(startId) + parseInt(offset);

	    MediaPlayer.popNewPlayer('search', params, startId, culture)
	}
});

/**
 * initObjectList
 * Add action on each link wich have to display the object's interaction menu
 * @author fl0r3nt
 */
function initObjectList() {
  // Init menu button for each objects
  $('.spaceCreationsOnClic').each(function(i, val){
	$(val).click(function(event) {
	  event.preventDefault();
	  // Close all opened menu if necessary
  	  $('.spaceCreationsMenu:visible').each(function(i, val){
	    $(val).css('display', 'none');
	    $(val).parent('.listingRow').removeClass('spaceCreationsDisTxtActive').removeClass('spaceCreationsDisTxtVisActive')
	      .removeClass('spaceCreationsDisImgActive').removeClass('spaceCreationsDisImgVisActive');
	  });
	  var $menu = $(event.target).next('.spaceCreationsMenu');
	  var _className, _parentName = '';
	  $(event.target).css('z-index', 0);
	  if ($(event.target).parent('.spaceCreationsDisTxt').length > 0) {
	    _parentName = 'spaceCreationsDisTxt';
  	  }
	  else if ($(event.target).parent('.spaceCreationsDisTxtVis').length > 0) {
	    _parentName = 'spaceCreationsDisTxtVis';
 	  }
	  else if ($(event.target).parent('.spaceCreationsDisImg').length > 0) {
	    _parentName = 'spaceCreationsDisImg';
	  }
	  else if ($(event.target).parent('.spaceCreationsDisImgVis').length > 0) {
		_parentName = 'spaceCreationsDisImgVis';
	  }
	  else if ($(event.target).parent('.spaceCreationsDisMixHeadLine2').length > 0) {
		_parentName = 'spaceCreationsDisMixHeadLine2';
	  }
	  else if ($(event.target).parent('.topPg').length > 0) {
		_parentName = 'topPg';
	  }
	  if (_parentName != '') $(event.target).parent('.'+_parentName).addClass(_parentName+'Active');
	  
	  if( $menu.is("div") ) {
	    $menu.css('display','block').bind("mouseleave",function(){
	      $menu.css('display','none');
	      if (_parentName != '') $(event.target).parent('.'+_parentName).removeClass(_parentName+'Active');
		});
	  }
	});
  });
}
