
NB = {};
NB.sliderWidth = 0;

$(document).ready(function(){ 
	
	////////// VIMEO PLAYER //////////
	
	var vimeoPlayers = document.querySelectorAll('iframe'), player;
	
	for (var i = 0, length = vimeoPlayers.length; i < length; i++) {
		player = vimeoPlayers[i];
	}
	
	
	
	
	
	
	$("#slider img").lazyload();
	
	// show images
	$('#slider').find('img').each(function(){
		$(this).css('display', 'inline');
	});
	var offsetLastImage = 0;
	if($('#slider').attr('class')!='autostart'){
		//$('#content-slider img:last').css({'paddingRight': offsetLastImage, 'background':'#fff'});
		//$('#content-slider li:last .pdf-selection').css({'marginRight': offsetLastImage});
	}
	
	$('#arrows').hide();
	$('#slider').hover(
	  function(){
	    $('#arrows').fadeIn();
	  }, 
	  function(){
	    $('#arrows').fadeOut();
	  }
	);
	
	var lastImage = $('#content-slider li:last').attr('id');
	var firstImage = $('#content-slider li:first').attr('id');
	
	$('#right').css({'opacity': '0.5', 'cursor': 'default'});
	
	// height slider
	var heightSlider;
	//width container
	var parentWidth;
	
	function sizeSlider(){
		if($('#content-slider').children().length==0){
			$('#arrows').hide();
			heightSlider = $(window).height() - 359;
			if(heightSlider > 250  && heightSlider < 650){
				$('#slider').css('height', heightSlider);
			} else if(heightSlider > 650){
				heightSlider = 650;
				$('#slider').css('height', heightSlider);
			} else {
				heightSlider = 250;
				$('#slider').css('height', heightSlider);
			}
		}
		
		//width container
		parentWidth = $('#slider').width();
			
		// width slider
		NB.sliderWidth = 0;
		$('#content-slider li').each(function(){
			NB.sliderWidth += $(this).width();
		});
		
	} sizeSlider();

    //save title value in data because tooltip is going to remove it
    $('#slider img[title]').each(function(){
        var title = $(this).attr("title");
        $(this).data('title',title);
    });
    
    ////////// TOOLTIP //////////
    
    $('#slider img[title]').tooltip({ 
        delay: 0, 
        track: true,
        showURL: false
    });
    
    $('#thumbnails img[title]').tooltip({ 
        delay: 0, 
        track: true,
        showURL: false
    });
    
    $('.pdf-selection a').tooltip({ 
        delay: 0, 
        track: true,
        showURL: false
    });

	$('.thumbnails-pdf-selection a').tooltip({ 
        delay: 0, 
        track: true,
        showURL: false
    });
    
    
    ////////// RESIZE SLIDER //////////
    

	var ulThumbnails = $('#thumbnails');
	var widthThumbnails = 0;
	var totalWidth = 0;
	
	var thumbnails = new Array();
	var indexThumbnails = new Array();
		indexThumbnails.push(0);
	
	var pages = 0;
	var currentPage = 0;
	var indexActiveThumbnails = 0;
	var activeThumbnailsIsVisible = false;

    $(window).bind('resize', function(){
		pages = 0;
		indexThumbnails.length = 0;
		indexThumbnails.push(0);
		totalWidth = 0;

		widthThumbnails = $(window).width()-800;
		if(widthThumbnails>255){	
			ulThumbnails.css('width', widthThumbnails);
		} else {
			widthThumbnails = 255;
			ulThumbnails.css('width', widthThumbnails);
		}
		
		function initThumbnails(){
			ulThumbnails.children().each(function(i){
				thumbnails[i] = this;
				totalWidth += $(this).width();
				if(totalWidth>widthThumbnails){
					pages ++;
					totalWidth = $(this).width();
					indexThumbnails.push(i);
				}
			});
		} initThumbnails();
		if(pages!=0){pagger();}
	
        var heigthImg = $(window).height() - 359;
        var marginTopArrows;

        if(heigthImg > 250  && heigthImg < 650){
            $('#slider img, #slider iframe').each(function(i){
                this.width = Math.round(this.width*(heigthImg/this.height));
                this.height = heigthImg;
				$('#slider').css('height', heigthImg);
            });
			
            marginTopArrows = Math.round(heigthImg*.5-$('#arrows').height()*.5);
        } else if(heigthImg > 650){
			$('#slider img, #slider iframe').each(function(i){
                this.width = Math.round(this.width*(650/this.height));
                this.height = 650;
				
				$('#slider').css('height', 650);
            });
			marginTopArrows = Math.round(650*.5-$('#arrows').height()*.5);
		} else {
            $('#slider img, #slider iframe').each(function(i){
                this.width = Math.round(this.width*(250/this.height));
                this.height = 250;
				
				$('#slider').css('height', 250);
            });
			
            marginTopArrows = Math.round(250*.5-$('#arrows').height()*.5);
        }
        $('#arrows').css('marginTop', marginTopArrows);
		resizeSlider();
	});
    
    $(window).trigger('resize');
    
    
    ////////// SLIDER //////////

    var speed = 1000;
    var delay = 2000;
	var maxWidth = 0;
	
	
	//var backupArrows = $('#arrows');
	
	// active galery
	var activeIndex = $('#thumbnails li > img').parent().index();

	function resizeSlider(){
		
		sizeSlider();
		
		var widthSliderArrows=0;
		
    	maxWidth = $("#content-slider li:first-child").find('img').width();
    	$("#content-slider li").each(function(i){
			widthSliderArrows += $(this).find('img').width();
   			$("#content-slider").css('width', NB.sliderWidth);
    	}); 
		
		arrows();
		if(widthSliderArrows<$(window).width()){
			$('#arrows').css('display', 'none');
		}
    }

	var loop = false;

    function autoStart(){
	
        $('#content-slider li:first-child').appendTo($('#content-slider'));

        var offset = $("#content-slider li:first-child").find('img').width()*-1-1;
        
		$("#content-slider").delay(2000).animate({
            marginLeft: offset
        }, 1000, onComplete);
        function onComplete(){
            $("#content-slider").css('marginLeft', '0px');
            autoStart();
        }   
    }
    
    function slideLeft(){
	
		var leftSlider = $('#content-slider').css('left');
			leftSlider = Number(leftSlider.substr(0, leftSlider.length-2));
		var marge = 0;
		if(leftSlider == 0 && loop){
			marge = $("img", "#content-slider li:first-child").width()*-1-1;
			
			if($('#content-slider li:first-child').attr('id') == lastImage){
				marge -= offsetLastImage;
			}
		
        	$("#content-slider").stop().animate({
            	left: marge
        		}, speed, onComplete);
        		function onComplete(){
           			$('#content-slider li:first-child').appendTo($('#content-slider'));
            		$("#content-slider").css('left', '0px');
        		}


		} else if(leftSlider != 0 && loop) {
			var widthMarge = 0;	
			var margeImg = 0
			var offsetLeft = leftSlider*-1;
				
			for(var i=0 ; i<$('#content-slider li').length ; i++){
				widthMarge = widthMarge + $('#content-slider li').width();
				if(i==0 && widthMarge>offsetLeft){
					widthMarge = offsetLeft;
					break;
				} else if(i==0 && widthMarge==offsetLeft){
					$('#content-slider li:eq(0)').appendTo($('#content-slider'));
					margeImg = Number(leftSlider)+Number(widthMarge);
					$('#content-slider').css('left', margeImg);
					break;
				}					
				if(widthMarge < offsetLeft){
					$('#content-slider li:eq('+i+')').appendTo($('#content-slider'));
					margeImg = Number(leftSlider)+Number(widthMarge);
					$('#content-slider').css('left', margeImg);
				} else {
					break;
				}
			}
			
			marge = ($('#content-slider li:first-child').width())*-1;
						
			$('#content-slider').animate({
				left: marge
			}, speed);
		} else if(!loop){
			var imageLeft = 0;
			var index = 0;
			
			$('#right').css({'opacity': '1', 'cursor': 'pointer'});
	
			for(var i=0 ; i<$('#content-slider li').length ; i++){
				if(imageLeft*-1 >= leftSlider){
					index = i;
				} else {	
					break;
				}
				imageLeft += $('#content-slider li:eq('+i+')').width();
			}
			
			if(index+1 <= $('#content-slider li:last').index()){
				marge = imageLeft*-1;
				$('#content-slider').animate({
					left: marge
				}, speed);
				$('#left').css({'opacity': '1', 'cursor': 'pointer'});
			}
			if(index+1== $('#content-slider li:last').index()){
				$('#left').css({'opacity': '0.5', 'cursor': 'default'});
			}
		}
    }
    function slideRight(){
		var leftSlider = $('#content-slider').css('left');
			leftSlider = Number(leftSlider.substr(0, leftSlider.length-2));
		
		var marge;	
			
		if(leftSlider == 0 && loop){
			marge = $("#content-slider li:last-child").find('img').width()*-1-1;
			
			if($('#content-slider li:last-child').attr('id') == lastImage){
				marge -= offsetLastImage;
			}
			
			$("#content-slider").css('left', marge);
        	onStart();
        	$("#content-slider").stop().animate({
            	left: 0
        		}, speed);
        		function onStart(){
					$('#content-slider li:last-child').prependTo($('#content-slider'));
    			}

		} else if(leftSlider != 0 && loop) {

			var widthMarge = 0;	
			var margeImg = 0	
					
			for(var i=0 ; i<$('#content-slider li').length ; i++){
				widthMarge = widthMarge + $('#content-slider li').width();
				if(i==0 && widthMarge>leftSlider*-1){
					widthMarge = leftSlider*-1;
					break;
				}
				if(widthMarge < leftSlider*-1){
					$('#content-slider li:eq('+i+')').appendTo($('#content-slider'));
					margeImg = Number(leftSlider)+Number(widthMarge);
					$('#content-slider').css('left', margeImg);
				} else {
					break;
				}
			}
			$('#content-slider').stop().animate({
				left: 0
			}, speed);
		} else if(!loop){
			$('#right').css({'opacity': '0.5', 'cursor': 'default'});
			$('#left').css({'opacity': '1', 'cursor': 'pointer'});
			if(leftSlider<0){
				
				var imageLeft = 0;
				var index = 0;
				
				$('#right').css({'opacity': '1', 'cursor': 'pointer'});
				
				for(var i=0 ; i<$('#content-slider li').length ; i++){
					
					if(imageLeft*-1 >= leftSlider){
						index = i;
						imageLeft += $('#content-slider li:eq('+i+')').width();
						if(i==$('#content-slider li').length-1){
							imageLeft -= $('#content-slider li:eq('+index+')').width();
							setMarge();
						}
					
					} else {
						imageLeft -= $('#content-slider li:eq('+index+')').width();
						setMarge();
						break;
					}
					
				}
				
				function setMarge(){
					index--;
					imageLeft -= $('#content-slider li:eq('+index+')').width()
					marge = imageLeft*-1;
				};
				
				$('#content-slider').animate({
					left: marge
				}, speed, onComplete);
				
				function onComplete(){
					
					if(leftSlider*-1 == $('#content-slider li:eq('+index+')').width()){
						$('#right').css({'opacity': '0.5', 'cursor': 'default'});
					}
				}
				
			}	
			
		}
    }
    
    function arrows(){
    	if($('#slider').attr('class')=='autostart'){
        	$('#arrows').hide();
        	autoStart();
    	} else {
        	$('#arrows').show();
    	}
		$('#arrows #left').click(slideLeft);
	    $('#arrows #right').click(slideRight);
	}
    
	
	////////// DRAGGABLE //////////
	
	var pos1;
	var pos2;
	var addImageRight = false;
	var addImageLeft = false;
	var margeLeft = false;

	if($('#slider').attr('class') != 'autostart' && NB.sliderWidth>parentWidth){

		$("#content-slider").draggable({ 
			axis: "x",
			start: function(){
				startOffset = $("#content-slider").offset().left;
			},
			drag: function(){
			
			},
			stop: function(){
				
				//width content
				var offset = $('#content-slider').offset().left;
				//empty white space
				var whiteSpace = 0;
				var side = 0; // 0 -> left / 1 -> right
				if(offset > 0){
					whiteSpace = offset;
				}else{
					var side = 1;
					//whiteSpace = parentWidth - (NB.sliderWidth + offset);
					whiteSpace = parentWidth - (NB.sliderWidth + offset)
				
				}
				
				if(whiteSpace > 0){
					if(side == 0 && loop){ //left white space
					
						while(whiteSpace > 0){	
							var item = $('#content-slider li:last-child');
							
							whiteSpace = whiteSpace - $(item).width();
							$(item).prependTo($('#content-slider'));
							
							var currentMarge = $('#content-slider').offset().left;
							var marge = currentMarge - $(item).width();
							$("#content-slider").css('left', marge);	
						}
						
					} else if (side == 1 && loop){ //right white space
						while(whiteSpace > 0){
							var item = $('#content-slider li:first-child');
							
							whiteSpace = whiteSpace - $(item).width();
							$(item).appendTo($('#content-slider'));
							
							var currentMarge = $('#content-slider').offset().left;
							var marge = currentMarge + $(item).width();
							$("#content-slider").css('left', marge);	
						}
					} else if(side == 0 && !loop){ //left white space
						$('#content-slider').stop().animate({
							left: 0
						}, speed);
					} else if(side == 1 && !loop){ //right white space
						var marge = (NB.sliderWidth - window.innerWidth)*-1;
						$('#content-slider').stop().animate({
							left: marge
						}, speed);
					}
				} else if(whiteSpace < 0 && !loop){
					if(startOffset > offset){
					/*	marge = offset-100;
						$('#content-slider').animate({
							left: marge
						}, speed);*/
					} else {
					/*	marge = offset+100;
						$('#content-slider').animate({
							left: marge
						}, speed);*/
					}
				}
			}
		
		});
	}

	////////// THUMBNAILS //////////
	
	function pagger(){
		if($('#thumbnailsNav').length > 0){
			$('#thumbnailsNav').remove();	
			$('#contentThumbnails .cl').remove();
		} 
		var thumbnailsNav = '<br class="cl" /><ul id="thumbnailsNav"></ul>';
			$(thumbnailsNav).insertAfter(ulThumbnails);
			for(var i=0 ; i<=pages ; i++){
				$('<li></li>').appendTo('#thumbnailsNav');
			}
		
		hideThumbnails();
		pageActive();
	} 
	
	
	
	function hideThumbnails(){
		
		indexActiveThumbnails = $('#thumbnails li > img').parent().index();
		
		for(var i=0 ; i< thumbnails.length ; i++){
			$(thumbnails[i]).hide();
		}
		if(currentPage<pages){
			for(var j=indexThumbnails[currentPage] ; j<indexThumbnails[currentPage+1] ; j++){
				$(thumbnails[j]).show();
				if($(thumbnails[j]).index() == indexActiveThumbnails){
					activeThumbnailsIsVisible = true;
				}
			}
		} else {
			for(var j=indexThumbnails[currentPage] ; j<thumbnails.length ; j++){
				$(thumbnails[j]).show();
				if($(thumbnails[j]).index() == indexActiveThumbnails){
					activeThumbnailsIsVisible = true;
				}
			}
		}
		
		if(!activeThumbnailsIsVisible){
			currentPage++;
			pageActive();
			hideThumbnails();
		}
	}

	
	function pageActive(){
		$('#thumbnailsNav li').removeClass('active');
		$('#thumbnailsNav li:eq('+currentPage+')').addClass('active');
		
		$('#thumbnailsNav li').click(function(){
			currentPage = $(this).index();
			pageActive();
			hideThumbnails();
		});
	} pageActive();
	
	
	////////// PDF SELECTION //////////
	
	$('.pdf-selection a').click(function (event) {
		
		if($('#link-pdf').length==0){
			var linkSelection = '<li><a id="link-pdf" href="/selection">MEIN PDF</a></li>';
			$(linkSelection).appendTo('#princNav');
		}
        
		var id = $(this).parent().parent().attr('id').replace('pic-', '');
		
		if($(this).attr('class')!='added'){
			$(this).addClass('added').attr('title','remove from pdf').tooltip({ 
		        delay: 0, 
		        track: true,
		        showURL: false
		    });
		} else {
			$(this).removeClass('added').attr('title','add to pdf').tooltip({ 
		        delay: 0, 
		        track: true,
		        showURL: false
		    });
        }

        $.post(global.root + '/selection/add/' + id, function (rsp) {
             
            if (rsp == '00') {
                $('#pdf-selection').hide();
            } else {
                $('#pdf-selection').show();
            }
			
            $('#pdf-selection span').text(rsp);
        });

		if($(this).parent().parent().attr('class')=='selection'){
			var index = $(this).parent().parent().index();
			$('#thumbnails li:eq('+index+')').remove();
			$(this).parent().parent().remove();
			
			sizeSlider();
		}
		removeDownloadPdf();
		
    });

	$('.thumbnails-pdf-selection a').click(function(){
		var index = $(this).parent().parent().index();
		
		
		var id = $('#content-slider li:eq('+index+')').attr('id').replace('pic-', '');
		
		$.post(global.root + '/selection/add/' + id, function (rsp) {
             
            if (rsp == '00') {
                $('#pdf-selection').hide();
            } else {
                $('#pdf-selection').show();
            }
			
            $('#pdf-selection span').text(rsp);
        });
		
		$('#content-slider li:eq('+index+')').remove();
		$(this).parent().parent().remove();
		
		removeDownloadPdf();
		sizeSlider();
	});
	
	function removeDownloadPdf(){
		if($('.thumbnails-selection .selection').length == 0){		
			$('.thumbnails-selection').html('<p>Es gibt zur Zeit keine Bild in der PDF Vorschau.</p>');
			$('#download-pdf').remove();
		}
	}
	
	
	
});

