var $j = jQuery.noConflict();
$j(document).ready(function(){
	setupButtons();
});

function projectorShowImg(currentObjId, imgId, blending, timing) {
	currentImgId = getCurrentImgId();
	
	// select all images
	$j('div').filter('.slideimage').css('z-index', '1000').removeClass("currentSlideImage");
	
	// prepare current image
	$j('div#tx_projector-show_'+currentObjId+'-'+currentImgId).css('z-index', '1001');

	$j('div#tx_projector-show_'+currentObjId+'-'+imgId).addClass("currentSlideImage");
	slideAnimation(blending, currentObjId, imgId, timing);
	
	checkButtonVisibility();
}

function projectorShowNextImg(currentObjId, blending, timing) {
	currentImgId = getCurrentImgId();
	
	$j('div').filter('.slideimage').css('z-index', '1000').removeClass("currentSlideImage");
	$j('div#tx_projector-show_'+currentObjId+'-'+currentImgId).css('z-index', '1001');
	
	currentImgId++;	
	$j('div#tx_projector-show_'+currentObjId+'-'+currentImgId).addClass("currentSlideImage");
	slideAnimation(blending, currentObjId, currentImgId, timing);
	
	checkButtonVisibility();
}

function projectorShowPrevImg(currentObjId, blending, timing) {
	currentImgId = getCurrentImgId();
	
	$j('div').filter('.slideimage').css('z-index', '1000').removeClass("currentSlideImage");
	$j('div#tx_projector-show_'+currentObjId+'-'+currentImgId).css('z-index', '1001');
	
	currentImgId--;
	$j('div#tx_projector-show_'+currentObjId+'-'+currentImgId).addClass("currentSlideImage");
	slideAnimation(blending, currentObjId, currentImgId, timing);
	
	checkButtonVisibility();
}

function projectorShowNextSlide(currentObjId, blending, timing) {
	currentSlideId = getCurrentSlideId();
	
	$j('div').filter('.slideslide').css('z-index', '1000').removeClass("currentSlideSlide");
	$j('div#tx_projector-show_'+currentObjId+'-'+currentSlideId).css('z-index', '1001');
	
	currentSlideId++;
	$j('div#tx_projector-show_'+currentObjId+'-'+currentSlideId).addClass("currentSlideSlide");
	slideAnimation(blending, currentObjId, currentSlideId, timing);
	
	checkButtonVisibility();
}

function projectorShowPrevSlide(currentObjId, blending, timing) {
	currentSlideId = getCurrentSlideId();
	
	$j('div').filter('.slideslide').css('z-index', '1000').removeClass("currentSlideSlide");
	$j('div#tx_projector-show_'+currentObjId+'-'+currentSlideId).css('z-index', '1001');
	
	currentSlideId--;
	$j('div#tx_projector-show_'+currentObjId+'-'+currentSlideId).addClass("currentSlideSlide");
	slideAnimation(blending, currentObjId, currentSlideId, timing);
	
	checkButtonVisibility();
}

function slideAnimation(animationStyle, currentObjId, currentImgId, timing) {
	imgWidth = $j('div#tx_projector-show_'+currentObjId+'-'+currentImgId).width();
	imgHeight = $j('div#tx_projector-show_'+currentObjId+'-'+currentImgId).height();
	
	if(timing <= 0) {
		timing = 1000;
	}
	
	switch(animationStyle) {
	case 'opacityblend':
		$j('div#tx_projector-show_'+currentObjId+'-'+currentImgId).css({'opacity': '0','z-index': '1002'});
		$j('div#tx_projector-show_'+currentObjId+'-'+currentImgId).animate({'opacity': '1.0'}, timing, 'easeOutSine');
		break;
	case 'slideblendfromleft':
		$j('div#tx_projector-show_'+currentObjId+'-'+currentImgId).css({'margin-left': '-'+imgWidth+'px','z-index': '1002'});
		$j('div#tx_projector-show_'+currentObjId+'-'+currentImgId).animate({'margin-left': '0px'}, timing, 'easeOutExpo');
		break;
	case 'slideblendfromright':
		$j('div#tx_projector-show_'+currentObjId+'-'+currentImgId).css({'margin-left': imgWidth+'px','z-index': '1002'});
		$j('div#tx_projector-show_'+currentObjId+'-'+currentImgId).animate({'margin-left': '0px'}, timing, 'easeOutExpo');
		break;
	case 'opacityslideblendfromleft':
		$j('div#tx_projector-show_'+currentObjId+'-'+currentImgId).css({'margin-left': '-'+imgWidth+'px','opacity': '0','z-index': '1002'});
		$j('div#tx_projector-show_'+currentObjId+'-'+currentImgId).animate({'opacity': '1.0', 'margin-left': '0px'}, timing, 'easeOutExpo');
		break;
	case 'opacityslideblendfromright':
		$j('div#tx_projector-show_'+currentObjId+'-'+currentImgId).css({'margin-left': imgWidth+'px','opacity': '0','z-index': '1002'});
		$j('div#tx_projector-show_'+currentObjId+'-'+currentImgId).animate({'opacity': '1.0', 'margin-left': '0px'}, timing, 'easeOutExpo');
		break;
	case 'slidebouncefromleft':
		$j('div#tx_projector-show_'+currentObjId+'-'+currentImgId).css({'margin-left': '-'+imgWidth+'px','z-index': '1002'});
		$j('div#tx_projector-show_'+currentObjId+'-'+currentImgId).animate({'margin-left': '0px'}, timing, 'easeOutBounce');
		break;
	case 'slidebouncefromright':
		$j('div#tx_projector-show_'+currentObjId+'-'+currentImgId).css({'margin-left': imgWidth+'px','z-index': '1002'});
		$j('div#tx_projector-show_'+currentObjId+'-'+currentImgId).animate({'margin-left': '0px'}, timing, 'easeOutBounce');
		break;
	case 'slideelasticfromleft':
		$j('div#tx_projector-show_'+currentObjId+'-'+currentImgId).css({'margin-left': '-'+imgWidth+'px','z-index': '1002'});
		$j('div#tx_projector-show_'+currentObjId+'-'+currentImgId).animate({'margin-left': '0px'}, timing, 'easeOutElastic');
		break;
	case 'slideelasticfromright':
		$j('div#tx_projector-show_'+currentObjId+'-'+currentImgId).css({'margin-left': imgWidth+'px','z-index': '1002'});
		$j('div#tx_projector-show_'+currentObjId+'-'+currentImgId).animate({'margin-left': '0px'}, timing, 'easeOutElastic');
		break;

	// default: just switch to the new image (named 'clickshow')
	default:
		$j('div#tx_projector-show_'+currentImgId).css('z-index', '1002');
		break;
	}
}


function getCurrentImgId() {
	var currentImgIdLength = $j('div.currentSlideImage').attr('id').length;
	var currentImgString = $j('div.currentSlideImage').attr('id').substring(18, currentImgIdLength);
	var currentImgStringParts = currentImgString.split('-');
	var currentImgId = currentImgStringParts[1];

	return currentImgId;
}

function getLastImgId() {
	var lastImgIdLength = $j('div.slideimage').last().attr('id').length;
	var lastImgString = $j('div.slideimage').last().attr('id').substring(18, lastImgIdLength);
	var lastImgStringParts = lastImgString.split('-');
	var lastImgId = lastImgStringParts[1];

	return lastImgId;
}

function getCurrentSlideId() {
	var currentSlideIdLength = $j('div.currentSlideSlide').attr('id').length;
	var currentSlideString = $j('div.currentSlideSlide').attr('id').substring(18, currentSlideIdLength);
	var currentSlideStringParts = currentSlideString.split('-');
	var currentSlideId = currentSlideStringParts[1];
	
	return currentSlideId;
}

function getLastSlideId() {
	var lastSlideIdLength = $j('div.slideslide').last().attr('id').length;
	var lastSlideString = $j('div.slideslide').last().attr('id').substring(18, lastSlideIdLength);
	var lastSlideStringParts = lastSlideString.split('-');
	var lastSlideId = lastSlideStringParts[1];
	
	return lastSlideId;
}

function getContentElementId() {
	if($j('div').filter('.previews').length > 0) {
		view = 'Image';
	}
	if($j('div').filter('.slideslide').length > 0) {
		view = 'Slide';
	}
	var currentContentElementIdLength = $j('div.currentSlide'+view).attr('id').length;
	var currentContentElementString = $j('div.currentSlide'+view).attr('id').substring(18, currentContentElementIdLength);
	var currentContentElementStringParts = currentContentElementString.split('-');
	var currentContentElementId = currentContentElementStringParts[0];
	
	return currentContentElementId;
}

function checkButtonVisibility() {
	$j('div').filter('.tx-fhprojector-pi1 > div').each(function(){
		var currentContentElementString = $j(this).attr('id');
		var currentContentElementStringParts = currentContentElementString.split('-');
		var currentContentElementId = currentContentElementStringParts[1];
		
		if($j('div#tx_projector-'+currentContentElementId+' > div > div').filter('.previews').length > 0) {
			currentId = parseInt(getCurrentImgId());
			lastId = parseInt(getLastImgId());
		} else if($j('div#tx_projector-'+currentContentElementId+' > div').filter('.slideslide').length > 0) {
			currentId = parseInt(getCurrentSlideId());
			lastId = parseInt(getLastSlideId());
		}

		if(currentId > 0) {
			unhidePrevButton(currentContentElementId);
		} else {
			hidePrevButton(currentContentElementId);
		}
		if(currentId < lastId) {
			unhideNextButton(currentContentElementId);
		} else {
			hideNextButton(currentContentElementId);
		}
		if(lastId < 1) {
			hidePrevButton(currentContentElementId);
			hideNextButton(currentContentElementId);
		}
	});
}
function hidePrevButton(currentContentElementId) {
	$j('div#slideButtonPrev-'+currentContentElementId).css('display', 'none');
}
function unhidePrevButton(currentContentElementId) {
	$j('div#slideButtonPrev-'+currentContentElementId).css('display', 'block');
}
function hideNextButton(currentContentElementId) {
	$j('div#slideButtonNext-'+currentContentElementId).css('display', 'none');
}
function unhideNextButton(currentContentElementId) {
	$j('div#slideButtonNext-'+currentContentElementId).css('display', 'block');
}

function setupButtons() {
	$j('div').filter('.tx-fhprojector-pi1 > div').each(function(){
		var currentContentElementString = $j(this).attr('id');
		var currentContentElementStringParts = currentContentElementString.split('-');
		var currentContentElementId = currentContentElementStringParts[1];
		
		if($j('div#tx_projector-'+currentContentElementId+' > div > div').filter('.previews').length > 0) {
			imgHeight = $j('div#tx_projector-'+currentContentElementId+' > div > div').filter('.slides').filter('img').height();
			$j('div#tx_projector-'+currentContentElementId+' > div > div').filter('.slides').css('height', imgHeight+'px');
			$j('div#slideButtonPrev-'+currentContentElementId).css('margin-top', ($j('div.slideimage.currentSlideImage').height()/2 - $j('div.slideButtonPrev').height()/2)+'px');
			$j('div#slideButtonNext-'+currentContentElementId).css('margin-top', ($j('div.slideimage.currentSlideImage').height()/2 - $j('div.slideButtonPrev').height()/2)+'px');
			checkButtonVisibility();
		} else if($j('div#tx_projector-'+currentContentElementId+' > div').filter('.slideslide').length > 0) {
			imgHeight = $j('div#tx_projector-'+currentContentElementId).height();
			$j('div#tx_projector-'+currentContentElementId).css('height', imgHeight+'px');
			$j('div#slideButtonPrev-'+currentContentElementId).css('margin-top', (imgHeight/2 - $j('div#slideButtonPrev-'+currentContentElementId).height()/2)+'px');
			$j('div#slideButtonNext-'+currentContentElementId).css('margin-top', (imgHeight/2 - $j('div#slideButtonNext-'+currentContentElementId).height()/2)+'px');
			checkButtonVisibility();
		} else {
			return false;
		}

	});
}

