/*
 * jQuery Litebox - jQuery plug-in
 * Beta 2r2, Released 2007.03.14
 *
 * Copyright (c) 2007 Daniel MacDonald (www.projectatomic.com)
 * Dual licensed GPL http://www.gnu.org/licenses/gpl.html 
 * and MIT http://www.opensource.org/licenses/mit-license.php
 */
(function($){
$.fn.litebox = function(o){
	
    //if (window.XMLHttpRequest && typeof document.doctype =='object' && !window.opera){ //ie6+, mozilla1.0+, safari1.2+, konquerer, icab3.0+
		var s = {oc:'black',oy:0.3,oz:9999999999,sb:'url(images/popup_bg_btm.png) no-repeat left bottom',sc:'url(images/popup_bg_top.png) no-repeat left top',sw:550,sh:385,ns:2,nc:'black',nz:'0.6em',nf:'sans-serif',lu:'images/loader.gif',lh:24,lw:24,ifh:375,ifw:500,ld:2000,a:false,loop:false,count:true,ad:5000,auto:'',stop:'STOP',restart:'RESTART',image:'',of:'',close:'<img src="images/iconclose.png" border=0 />',prev:'',next:'',aa:'SPACEBAR',ac:'Close',ap:'LEFT ARROW',an:'RIGHT ARROW', click:'', ldt:'Please wait for loading ...', ldtt:'', popshow:0};
        if(o){
            $.extend(s, o);
        }
        return this.each(function(){
			if(s.popshow ==1){
				var g = $(this).find('a#ppup').show(function(){
					var i = $(g).index($(this)[0]);
					$.litebox.init(i, g, s);
				});
				return false; 
			}
			
			var g = $(this).find('a.vbio').click(function(){ 
			//var g = $(this).find('input[@type="image"]').click(function(){ 
                var i = $(g).index($(this)[0]);
                $.litebox.init(i, g, s);
                return false; 
            });
        });
    //}
};

$.litebox = {
    i: 0,
    g: [],
    s: {},
    lt: 0,
    at: 0,
    init: function(i, g, s){
        this.i = i;
        this.g = g;
        this.s = s;//<iframe id="ss_o" src="" scrolling="no" frameborder="0" allowTransparency="true"></iframe>
        $('body').append('<div id="ss_o"></div><div id="ss_s"><div class="ss_b"><span id="ss_tt"></span><img id="ss_l" /><img id="ss_i" /><div id="ss_dif"><iframe id="ss_if" src="" scrolling="no" frameborder="0"></iframe></div><a id="ss_a" href=""></a><div id="ss_c"><span></span><span></span><span></span><span></span></div><a id="ss_p" href=""></a><a id="ss_n" href=""></a><a id="ss_x" href=""></a></div></div>'); 
        $('#ss_o').css({position: 'fixed', zIndex: s.oz, opacity: 0, background: s.oc}).bind('click', function(){
			$.litebox.remove();
		});
		
        $('#ss_s').css({position: 'fixed', zIndex: s.oz+1, opacity: 0, background: s.sc, border: '0 #000 solid'});
		$('.ss_b').css({background: s.sb});
        $('#ss_s/span').html(s.ldt).css({position: 'absolute', zIndex: s.oz+4});
		$('#ss_if').css({height: s.ifh, width: s.ifw, border: '0 #f00 solid'});
		$('#ss_dif').css({position: 'absolute', zIndex: s.oz+5, height: s.lh, width: s.lw, display: 'none', border: ''});
		$('#ss_l').attr('src', s.lu).css({position: 'absolute', zIndex: s.oz+2, height: s.lh, width: s.lw, display: 'block'});
		$('#ss_i').attr('alt', s.click).css({position: 'absolute', zIndex: s.oz+3, opacity: 0, border: 'none'}).bind('click', function(){
            $.litebox.remove();
			//var w = window.open($($.litebox.g[$.litebox.i]).attr('href'),'liteboxwin');
            return false;
        });
		
        //$('#ss_c, #ss_s/a').css({position: 'absolute', display: 'block', color: s.nc, font: s.nz+'/1 '+s.nf, textDecoration: 'none', outline: 'none !impotant'});
        //alert('Error ^^');
		$('#ss_c').css({width: '50%', bottom: s.ns, left: '25%', textAlign: 'center'});
        
		if(s.count){
            $('#ss_c/span:eq(0)').html(s.image+'&nbsp;');
            $('#ss_c/span:eq(2)').html('&nbsp;'+s.of+'&nbsp;');
        }
		
        $('#ss_a').attr('title', s.aa).css({top: s.ns, left: s.ns*2}).bind('click', function(){
            $.litebox.toggle();
            return false;
        });
		
        if(s.a){
            $('#ss_a').html(s.stop);
        }else{
            $('#ss_a').html(s.auto);
        }
		
        $('#ss_x').attr('title', s.ac).html(s.close).css({top: s.ns*2, right: s.ns*5+5, position: 'absolute', zIndex: s.oz+7}).bind('click', function(){
            $.litebox.remove();
            return false;
        });
		//alert( $('#ss_s').html());
        $('#ss_p').attr('title', s.ap).html(s.prev).css({bottom: s.ns, left: s.ns*2}).bind('click', function(){
            $.litebox.moveprev();
            return false;
        });
        $('#ss_n').attr('title', s.an).html(s.next).css({bottom: s.ns, right: s.ns*2}).bind('click', function(){
            $.litebox.movenext();
            return false;
        });
		
        $(document).bind('keydown', function(e){
            var key = e.which || e.keyCode || e.charCode;
            switch (key){
                case 27: // [esc]
                    $.litebox.remove();
                    break;
                case 37: // [left arrow]
                    $.litebox.moveprev();
                    break;
                case 39: // [right arrow]
                    $.litebox.movenext();
                    break;
                case 32: // [spacebar]
                    $.litebox.auto();
                    break;
            }
            return false;
        });
        $.litebox.position();
        $('#ss_o').fadeTo('normal', s.oy, function(){
            $('#ss_s').fadeTo('normal', 1);
            $.litebox.load(i, g);
        });
		
		//$(window).scroll(function(){ $.litebox.centerPicture(); });
		//$(window).resize(function(){ $.litebox.centerPicture();})
    },
    load: function(i, g){
        var s = this.s;
        $('#ss_i').fadeTo('normal', 0, function(){
            $.litebox.lt = setTimeout($.litebox.loading, s.ld);
            $('#ss_i').bind('load', function(){
                clearTimeout($.litebox.lt);
                $('#ss_l').css('display', 'none');
                $.litebox.resize($(g[i]).attr('href'));
                if(s.count){
                    $('#ss_c/span:eq(1)').html(i+1);
                    $('#ss_c/span:eq(3)').html(g.length);
                }
                if (i > 0){
                    $('#ss_p').css('display', 'block');
                    $.litebox.preload($(g[i-1]).attr('href'));
                }else{ 
                    $('#ss_p').css('display', 'none');
                }
                if (i+1 < g.length){ 
                    $('#ss_n').css('display', 'block');
                    $.litebox.preload($(g[i+1]).attr('href'));
                }else{
                    $('#ss_n').css('display', 'none');
                }
                if (s.a == true){
                    $.litebox.auto();
                }
            });
			
			if(i <0){
				$('#ss_if').attr('src', $('a#ppup').attr('href'));
			}else{
				$('#ss_if').attr('src', $(g[i]).attr('href'));
			}
            //$('#ss_i').attr('src', $(g[i]).attr('href'))
        });
    },
    loading: function(){
        //$('#ss_l').css('display', 'block');
		$('#ss_dif').css('display', 'block');
		$('#ss_l').css('display', 'none');
    },
    position: function(e){
        var s = (e) ? e.data.s : this.s;
        var xh = parseInt($('#ss_x').height(), 10), ww = self.innerWidth || document.documentElement.clientWidth, wh = self.innerHeight || document.documentElement.clientHeight;
		ww = (ww <1024 ? 1024 : ww);
		wh = (wh <600 ? 600 : wh);
		//alert(wh);
		$('#ss_o').css({height: wh, width: ww, top: 0, left: 0});
        $('#ss_s, .ss_b').css({height: s.sh+25, width: s.sw, top: wh/2-(s.sh/2)-30, left: ww/2-s.sw/2});
		
        $('#ss_l').css({top: s.sh/2-s.lh/2+7, left: s.sw/2-s.lw/2});
		$('#ss_tt').css({top: s.sh/2-s.lh/2-25, left: s.sw/2-s.lw/2-55});
		$('#ss_dif').css({top: s.sh/2-s.ifh/2+15, left: s.sw/2-s.ifw/2 - 10});
        if (typeof document.body.style.maxHeight == 'undefined'){ //ie6 only
            var sx = document.documentElement.scrollLeft, sy = document.documentElement.scrollTop;
            $('#ss_o').css({position: 'absolute', top: sy, left: sx});
            $('#ss_s').css({position: 'absolute', top: wh/2-s.sh/2+sy, left: ww/2-s.sw/2+sx});
            $(window).bind('scroll', {s: s}, $.litebox.position);
        }
        $.litebox.resize($('#ss_i').attr('src'));
        $(window).bind('resize', {s: s}, $.litebox.position);
    },
	centerPicture : function(){
		//Make sure the gallery is open
		if($('div#ss_s').size() > 0){
			
			var scrollPos =  $.litebox.getScroll();
			
			$('div#ss_s').css({
				'top': ($(window).height()/2) + scrollPos['scrollTop'] - ($('div#ss_s').height()/2),
				'left': ($(window).width()/2) + scrollPos['scrollLeft'] - ($('div#ss_s').width()/2)
			});
			
			/*$('div#ss_tt').css({
				'top' : $('div.pictureHolder').offset().top - 22,
				'left' : $('div.pictureHolder').offset().left + (prettyPhoto.options['padding']/2)
			});*/
		};
	},
	getScroll : function(){
		scrollTop = window.pageYOffset || document.documentElement.scrollTop || 0;
		scrollLeft = window.pageXOffset || document.documentElement.scrollLeft || 0;
		return {scrollTop:scrollTop,scrollLeft:scrollLeft};
	},
    preload: function(src){
        var img = document.createElement('img');
        img.src = src;
    },
    resize: function(src){
        if (typeof src != 'undefined'){
            var s = this.s;
            var img = new Image();
            img.src = src;
            var xh = parseInt($('#ss_x').height(), 10);
            var sw = parseInt($('#ss_s').width(), 10)-2*(xh+3*s.ns);
            var sh = parseInt($('#ss_s').height(), 10)-2*(xh+3*s.ns);
            var iw = img.width;
            var ih = img.height;
            if (iw > sw) { 
                ih = ih * (sw / iw); 
                iw = sw; 
                if (ih > sh) { 
                    iw = iw * (sh / ih); 
                    ih = sh; 
                }
            } else if (ih > sh) {
                iw = iw * (sh / ih); 
                ih = sh; 
                if (iw > sw) { 
                    ih = ih * (sw / iw); 
                    iw = sw;
                }
            }
            $('#ss_i').css({height: ih, width: iw, top: sh/2-ih/2+xh+2*s.ns, left: sw/2-iw/2+xh+3*s.ns}).fadeTo('normal', 1);
        }
    },
    toggle: function(){
        var s = $.litebox.s;
        if (s.a){
            clearTimeout($.litebox.at);
            $.litebox.s.a = false;
            $('#ss_a').html(s.auto);
        } else {
            $.litebox.s.a = true;
            $('#ss_a').html(s.stop);
            $.litebox.auto();
        }
    },
    auto: function(){
        var s = $.litebox.s;
        clearTimeout($.litebox.at);
        if (this.i+1 < this.g.length){
            $.litebox.at = setTimeout($.litebox.movenext, s.ad);
        }else if (s.loop){
            $.litebox.i = -1;
            $.litebox.at = setTimeout($.litebox.autoload, s.ad);
        }else{
            $('#ss_a').html(s.restart).one('click', function(){
                $('#ss_a').html(s.stop);
                $.litebox.s.a = true;
                $.litebox.i = 0;
                $.litebox.at = setTimeout($.litebox.autoload, s.ad);
            });
        }
    },
    autoload: function(){
        $.litebox.load($.litebox.i, $.litebox.g);
    },
    moveprev: function(){
        clearTimeout($.litebox.at);
        $.litebox.s.a = false;
        $('#ss_a').html($.litebox.s.auto);
        if ($.litebox.i > 0){
            $.litebox.i -= 1;
            $.litebox.load($.litebox.i, $.litebox.g);
        }
    }, 
    movenext: function(){
        if ($.litebox.i+1 < $.litebox.g.length){
            $.litebox.i += 1;
            $.litebox.load($.litebox.i, $.litebox.g);
        }
    },
    remove: function(){
		$('#ss_if').attr('src', '');
		
        $(window).unbind('resize').unbind('scroll');
        $(document).unbind('keypress');
		
		$('#ss_if').remove();
        $('#ss_dif').remove();
		$('#ss_s/span').remove();
		$('#ss_l').remove();
		
        $('#ss_s').fadeTo('normal', 0, function(){
            $('#ss_s').remove();
            $('#ss_o').fadeTo('normal', 0, function(){
                $('#ss_o').remove();
            });
        });
    }
};
})(jQuery);