/**
 * Aurelius Lightbox - jQuery Plugin
 *
 *
 * @author Adam CiÄĹźkowski <adam@Aurelius.pl>
 * @link www.aurelius.pl
 * @license ask @ biuro@aurelius.pl
 * @since 28.04.2010
 * @version 2.2
 */
(function($) {



    $.fn.aureliusLb = function() {
        var options = {
            duration: 300
        }
        var gallery = new Array();
        var galleryMini = new Array();
        var imgMap  = new Array();
        var index = 0;
        var subindex = 0;
        var currentImg;
		var silentRestart = false;
        var conts = {
			
			//naviGal:	$('<div style="position:fixed;left:0px;z-index:100000;bottom:100px;width:100%;"><a class="next-gal" style="color:#fff;font-weight:bold;float:right;padding:30px;"  href="#"> Następna strona</a><a class="prev-gal" style="color:#fff;font-weight:bold;float:left;padding:30px" href="#"> poprzednia strona</a></div>'),
            fade :      $('<div id="lite-fade"></div>'),
            loaderG:	$('<div style="position:fixed;top:40%;left:40%;width:20%;z-index:10010;visibility:hidden"><img src="images/ajax-loader2.gif" style="display:block;margin:0px auto;opacity:0.9;filter:alpha(opacity=90)"/></div>'),
			wrap :      $('<div id="lite-wrap" style="position:fixed;top:10px;"></div>'),
            mini :      $('<div id="lite-mini"></div>'),
            title:      $('<div id="lite-title"></div>'),
            mleft:      $('<div id="lite-mleft"><img src="images/mright.png" style="cursor: pointer; opacity: 1; filter: alpha(opacity=100); height: 46px"></div>'),
            mright:     $('<div id="lite-mright"><img src="images/mleft.png" style="cursor: pointer; opacity: 1; filter: alpha(opacity=100); height: 46px"></div>'),
            right:      $('<div id="lite-right"><img src="images/mright.png" style="cursor: pointer; opacity: 1; filter: alpha(opacity=100);"></div>'),
            left:       $('<div id="lite-left"><img src="images/mleft.png" style="cursor: pointer; opacity: 1; filter: alpha(opacity=100);"></div>'),
            logo:       $('<div id="lite-logo" style="position:fixed; top:10px; left:0px; z-index:2000; "><img src="images/logoa.png" style="opacity: 0.90; filter: alpha(opacity=90);"/></div>'),
            close:      $('<div id="lite-close" style="position:fixed; top:10px; right:27px; z-index:5000; cursor:pointer; "><img src="images/close.png" style="opacity: 0.90; filter: alpha(opacity=90);"/></div>')
        }

        var addDebug = function (msg){
            $('#debug').append(msg + '<br/>');
        }

    var assignCloseNextEvents = function() {				
                conts.title.fadeOut('fast');
                conts.wrap.remove();
                conts.mini.remove();
				silentRestart = true;
          
            


        }
		var clickMeNext = function() {
				$('.nexter').click();
				assignCloseNextEvents();
				return false;
		}
		
		var assignCloseEvents = function() {

            conts.close.click(function() {
// buggy line				consts.loaderG.remove();
                conts.fade.remove();
                conts.wrap.remove();
                conts.title.remove();
                conts.wrap.remove();
                conts.mini.remove();
                conts.logo.remove();
                conts.close.remove();
				$('object').css('visibility','visible');
				
				
				$('body div#aureliusContainer').remove();
            });
           /* conts.close.click(function(){
                conts.fade.click();
            })*/


        }
		
		

        var opening = function() {
			
		//	conts.wrap.css('margin-top',($('body').height()-800));
			$('body').prepend(conts.loaderG);
            conts.fade.fadeIn('fast');
            conts.wrap.fadeIn('fast');
            conts.title.fadeIn('fast');            
            conts.mini.find('img').click(function(){
                
				var o = this;
				
                var left;
                
                if(index < imgMap[$(this).attr('src')]) {
                    left = true;
                } else {
                    left = false;
                }
                galleryMini[index].animate({
                    'opacity' : '0.3'
                }, 300);
                index = imgMap[$(this).attr('src')];
                galleryMini[index].animate({
                    'opacity' : '1'
                }, 300);
                var dir;
                if(left) {
                    dir = {
                        'margin-left':-900,
                        'opacity' : 0
                    }
                } else {
                    dir = {
                        'margin-left':900,  
                        'opacity' : 0
                    }
                }
              
				
			   $(currentImg).animate(dir
                    , 50, function(){
					
						
						

						
                        if(left) {
                            $(currentImg).css('margin-left',900);
                        } else {
                            $(currentImg).css('margin-left',-900);
                        }
                        currentImg.src = $(o).attr('alt');
                        currentImg.title = $(o).attr('title');
						//conts.loaderG.css('visibility','visible');
						//$('#lite-fade').css('background', 'url(\'images/ajax-loader2.gif\') #000 center center no-repeat');
						//$('#lite-fade').css('background', '#f30');
						
						//klarowny fix:
						$('#lite-fade').css('position', 'fixed');
						
						$('#lite-fade').css('background', 'url(\'images/ajax-loader2.gif\') #000 no-repeat');
						// base: http://jcizfmbqqgo8.az.pl/zkm/site_public/
						$('#lite-fade').css('background-color', '#000');
						$('#lite-fade').css('background-repeat', 'no-repeat');
						$('#lite-fade').css('background-position', '50% 215px');
						$('#lite-fade').css('background-image', 'url(images/ajax-loader2.gif)');
						//alert($('#lite-fade').css('background-image'));
						
						
						
						
						
						currentImg.onload = function(e)
						{
							//conts.wrap.css('background','none');
							conts.loaderG.css('visibility','hidden');
							if(!e) e = window.event;
							
							$(currentImg).animate(
							{
								'margin-left' : 0, 'opacity' : 1
							}, 1000, function(){
								//$('#lite-fade').css('background', '#000');
							});
						}
						
                        conts.title.html(currentImg.title);
                        
                    });
				
               

                var l = 49 - (index * 11);
                addDebug(l);
                conts.mini.animate( {
                    'left' : l + '%'
                }, 1000 );
                
                subindex = index;
            })

            conts.title.html(currentImg.title);
            conts.mini.find('img').mouseenter(function(){
                $(this).animate({
                    'opacity' : '1'
                }, 300);
            })
            conts.mini.find('img').mouseleave(function(){
                if($(this).attr('src') != gallery[index].attr('src'))
                    $(this).animate({
                        'opacity' : '0.3'
                    }, 300);
            })

            conts.mleft.click(function(){
                subindex +=3;
                var l = 49 - (subindex * 11);
                conts.mini.animate( {
                    'left' : l + '%'
                }, 1000 );
            })

            conts.mright.click(function(){
                subindex -=3;
                var l = 49 - (subindex * 11);
                conts.mini.animate( {
                    'left' : l + '%'
                }, 1000 );
            })

            conts.left.click(function(){
                if(index-1 < 0) {
                    galleryMini[galleryMini.length-1].click();
                } else {
                    galleryMini[index-1].click();
                }
            })

            conts.right.click(function(){
                if(index+1 > galleryMini.length-1) {
                    galleryMini[0].click();
                } else {
                    galleryMini[index+1].click();
                }
            })


        }

        var injections = function() {
            if(!silentRestart) {
				$('body').append(conts.fade);
				$('body').append(conts.title);
				$('body').append(conts.logo);
				$('body').append(conts.close)
			} 
			$('object').css('visibility','hidden');
			//$('body').append(conts.fade);
            $('body').append(conts.wrap);
            //$('body').append(conts.title);
            //$('body').append(conts.logo);
            //$('body').append(conts.close);
            conts.fade.height($('body').height());
           
			conts.wrap.append(currentImg);
            conts.wrap.append(conts.mini);
            conts.wrap.append(conts.mleft);
            conts.wrap.append(conts.mright);
            conts.wrap.append(conts.left);
            conts.wrap.append(conts.right);
//			conts.wrap.append(conts.naviGal.bind('click', clickMeNext));
		
            generateMinis();
        }
		
		var smallInjections = function() {
            
			
            $('body').append(conts.close);
            conts.fade.height($('body').height());
            
			conts.wrap.append(currentImg);
            conts.wrap.append(conts.mini);
          
            generateMinis();
        }

        var makeImg = function(a) {
            var p = new Image();
            p.src  = a.src;
            p.title = a.title;
			$(p).addClass('main-Picture');
            
			return p;
        }
		
        var generateMinis = function() {
            for(var i in gallery) {
                var o = new Image();
                o.src = gallery[i].attr('alt');
                o.title = gallery[i].attr('title');
				o.alt = gallery[i].parent().attr('href');
                galleryMini[i] = $(o);
                conts.mini.append(o);
            }
        }
        this.each(function(key, value){
            var o = $(value).find('img');
            o.attr('title',$(value).attr('title'));
            var attrs = {
                href:   o.attr('href'),
                src:    o.parent().attr('href'),
                title:  o.attr('title')
			
            }

            gallery[key] = o;
            imgMap[o.attr('src')] = key;
			
            o.click(function(){
               
                index = imgMap[o.attr('src')];
                subindex = index;
                currentImg = makeImg(attrs);
				//currentImg.onload=function(){
				
                var l = 49 - (index * 11);
                conts.mini.css('left', l + '%');

                assignCloseEvents();
              //  assignCloseNextEvents();
                injections();
                opening();

                galleryMini[index].animate({
                    'opacity' : '1'
                }, 300);
                
                return false;
				//}
            })

            
        })
    }

})(jQuery)
