/**
 * @author kais
 */

$(document).ready(function() {
	  bwImageSlider.init();
	  $('.imageslider li:last').addClass('lastElementinRow');
	  
	  $('.imageslider li').each(function() {
	  	var breite = $(this).find('div.image img').width();
		$(this).find('.previewdata p.subtitle').css('width',breite-10);
	  });
	  
	  
});


var bwImageSlider = {

    init: function() {
			
		bwImageSlider.countImages();
		
        $('.galleryslide').each(function(i, jObj) {
            gC = $(jObj);
            gCStage = $(jObj).find('.imageslider-stage');

            bild2 = gC.find('.imageslider ul li:first div.previewdata img');
            //gCStage.html($(gC).find('.imageslider ul li:first div.previewdata').html());
            gC.find('.imageslider ul li:first').addClass('active');
            bwImageSlider.setCounter(jObj);
			
			// close mit "ESC"
			gC.bind('keydown',  function(e) {
			if (parseInt(e.which) == 27 ) {
				$.unblockUI();
	            return false;
			}
			});
        });
    },
    
    countImages: function() {
			$('.galleryslide').each(function(i, jObj) {
				$(jObj).find('.imageslider ul li').each(function(ii, jObjInner) {
					$(this, jObjInner).attr('id', 'image-' + (i + 1)+'-' + (ii + 1));
				});
			});		
    },
    
    setCounter: function(jObj) {
       		
            gcCounter = $(jObj).find('.imageCounter');
            gcStage = $(jObj).find('.imageslider-stage');
            imageList = $(jObj).find('ul');
            totalImages = $(jObj).find('ul li').size();
			
            if (totalImages > 0) {
                gcCounter.html('1/' + totalImages);
                if (totalImages > 0) {
                    //$(jObj).find('.imageSlideControl').html('<a href="#" class="zoom"><b>zoom</b></a><br clear="all" />');
                    
                    detailViewLayer = $('<div id="standard-gallery-detail-layer">' +
                    '	<div class="close"><a href="#">schliessen</a></div>' +
                    '	<div class="header"></div>' +                  
                    '	<div class="image-container">' +
                    '		<div class="backward"><a href="#"><b>backward</b></a></div>' +
                    '		<div class="image"></div>' +
                    '		<div class="forward"><a href="#"><b>forward</b></a></div>' +
                    '	</div>' +
                    '	<div class="text"><div style="overflow:hidden;height:100%;position:relative;"><p></p>' +
					'   <div style="position:absolute;bottom:10px; left:0px;"><div class="backward"><a href="#" title="backward"><b>backward</b></a></div>' +					
					'   <div class="counter"></a></div>' +                    
					'   <div class="forward"><a href="#" title="forward"><b>forward</b></a></div></div>' +
                    '</div></div>' +
					
                    '').css('display', 'none');
                    
                    $('body').prepend(detailViewLayer);
                    
                    $(detailViewLayer).find('div.close a').click(function() {
                        $.unblockUI();
						/* fix - unbind of clicks needed */
						$('.forward a').unbind('click');
						$('.backward a').unbind('click');
						
						$('.flash-replaced').show();
                        return false;
                    });
					
					// close mit "ESC"
					$(detailViewLayer).bind('keydown',  function(e) {
						if (parseInt(e.which) == 27 ) {
							$.unblockUI();
							/* fix - unbind of clicks needed */
							$('.forward a').unbind('click');
							$('.backward a').unbind('click');
							$('.flash-replaced').show();
	                        return false;
						}
					});
					
                    

		    var zoomFunction = function() {
						gcCounter = $(jObj).find('.imageCounter');
			            gcStage = $(jObj).find('.imageslider-stage');
			            imageList = $(jObj).find('ul');
			            totalImages = $(jObj).find('ul li').size();
							
						$(this).parent().parent().parent().parent().find('li.active').removeClass('active');
						$(this).parent().parent().parent().addClass('active');
						
						
						                      
						fulldata = imageList.find('li.active .fulldata');
						previewdata = imageList.find('li.active .previewdata');
                        image = $(fulldata).find('.image').html();
						
                        //subtitle = $(previewdata).find('.subtitle').html();
                        subtitle = $(this).parent().parent().find('.subtitle').html();
						download = $(fulldata).find('.download').html();
                        headline = $(fulldata).find('.header').html();
						
                        currentImageNumber = $(fulldata).parent().attr('id');
						var re = new RegExp("image-([1-9]+)-");
                        currentImageNumber = currentImageNumber.replace(re, '');
                        $('.counter', detailViewLayer).html(currentImageNumber + '/' + totalImages);
                        
                        
                        $('.image',detailViewLayer).html(image);
			if(subtitle!=null)
	                        $('.text p',detailViewLayer).html(subtitle);
			else
	                        $('.text p',detailViewLayer).html("");
			$('.header',detailViewLayer).html(headline);
			$('.download',detailViewLayer).html(download);
                        
						
						$('.forward a', detailViewLayer).click(function() {
							gcCounter = $(jObj).find('.imageCounter');
				            gcStage = $(jObj).find('.imageslider-stage');
				            imageList = $(jObj).find('ul');
							fulldata = imageList.find('li.active .fulldata');
				            totalImages = $(jObj).find('ul li').size();
							
                            activeImage = $(fulldata).parent().parent().find('.active');
							nextImage = activeImage.next();
                            if (nextImage.size() == 0) {
                                nextImage = activeImage.parent().find('li:first');
                            }
                            activeImage.removeClass('active');
                            nextImage.addClass('active');
                            fulldata = imageList.find('li.active .fulldata');
                            image = $(fulldata).find('.image').html();
                            //subtitle = $(fulldata).find('.subtitle').html();
							subtitle = imageList.find('li.active .subtitle').html();
							headline = $(fulldata).find('.header').html();
                            download = $(fulldata).find('.download').html();
                            nextImageNumber = nextImage.attr('id');
							var re = new RegExp("image-([1-9]+)-");
                            nextImageNumber = nextImageNumber.replace(re, '');
                            $('.counter',detailViewLayer).html(nextImageNumber + '/' + totalImages);
                            
                            $('.image',detailViewLayer).html(image);
                            if(subtitle!=null)
	                        $('.text p',detailViewLayer).html(subtitle);
			    else
	                        $('.text p',detailViewLayer).html("");
                            $('.header',detailViewLayer).html(headline);
                            $('.download',detailViewLayer).html(download);
							
                            return false;
                        });
                        
                        $('.backward a', detailViewLayer).click(function() {
							gcCounter = $(jObj).find('.imageCounter');
				            gcStage = $(jObj).find('.imageslider-stage');
				            imageList = $(jObj).find('ul');
							fulldata = imageList.find('li.active .fulldata');
				            totalImages = $(jObj).find('ul li').size();
							
                            activeImage = $(fulldata).parent().parent().find('.active');
                            prevImage = activeImage.prev();
							
                            if (prevImage.size() == 0) {
                                prevImage = activeImage.parent().find('li:last');
                            }
                            activeImage.removeClass('active');
							prevImage.addClass('active');
                            fulldata = imageList.find('li.active .fulldata');
                            image = $(fulldata).find('.image').html();
                            //subtitle = $(fulldata).find('.subtitle').html();
							subtitle = imageList.find('li.active .subtitle').html();
							headline = $(fulldata).find('.header').html();
                            download = $(fulldata).find('.download').html();
                            prevImageNumber = prevImage.attr('id');
							var re = new RegExp("image-([1-9]+)-");
                            prevImageNumber = prevImageNumber.replace(re, '');
                            $('.counter',detailViewLayer).html(prevImageNumber + '/' + totalImages);
                            
                            $('.image',detailViewLayer).html(image);
                            if(subtitle!=null)
	                        $('.text p',detailViewLayer).html(subtitle);
			    else
	                        $('.text p',detailViewLayer).html("");
			    $('.header',detailViewLayer).html(headline);
                            $('.download',detailViewLayer).html(download);							
                            							
                            return false;
                            
                        });
						
                        $.blockUI({
                            message: $(detailViewLayer),
                            css: {
                                position: 'fixed',
                                top: '50px',
                                left: '50px',
                                border: 'none',
                                width: '685px',
                                height: '534px',
                                cursor: 'default',
                                backgroundImage: 'url(http://www.coop.ch/pb/site/common/resourceCached/1/common/image/bg_gallery_layer.png)',
                                backgroundRepeat: 'no-repeat',
								backgroundColor: 'transparent',
                                padding: '20px'
                            },
                            overlayCSS: {
                                backgroundColor: '#000',
                                opacity: '0.7'
                            },
                            fadeIn: 250,
                            fadeOut: 250

                        });
						
						// in FF, flash-movies won't be overlapped by blockUI, so we hide them manually
						// and show them when blockUI is closed
						$('.flash-replaced').hide();
						
                        return false;
                    } 
		    $('.imageslider .imagezoom', jObj).click(zoomFunction);
		    $('a.zoom', jObj).click(zoomFunction);
                                        
                }
            }
    },
    
    nextImage: function(jObj) {

            activeImage = $(jObj).find('li.active');
        
    }
}
