(function(JQ){JQ.facebox=function(data){facebox_init()
facebox_loading()
JQ.isFunction(data)?data.call(this,JQ):facebox_reveal(data)
return JQ}
JQ.facebox.settings={loading_image:'/img/oggisposi/images/loading.gif',close_image:'/img/oggisposi/images/closelabel.gif',image_types:['png','jpg','jpeg','gif'],next_image:'/img/oggisposi/images/next.gif',prev_image:'/img/oggisposi/images/prev.gif',play_image:'/img/oggisposi/images/play.gif',pause_image:'/img/oggisposi/images/pause.gif',slide_duration:6,facebox_html:'\
  <div id="facebox" style="display:none;"> \
    <div class="popup"> \
      <table> \
        <tbody> \
          <tr> \
            <td class="tl"/><td class="b"/><td class="tr"/> \
          </tr> \
          <tr> \
            <td class="b"/> \
            <td class="body"> \
              <div class="content"> \
              </div> \
              <div class="info"></div> \
              <div class="footer"> \
                <div class="navigation"></div> \
                <a href="#" class="close"> \
                  <img src="/img/oggisposi/images/loading.gif" title="close" class="close_image" /> \
                </a> \
              </div> \
            </td> \
            <td class="b"/> \
          </tr> \
          <tr> \
            <td class="bl"/><td class="b"/><td class="br"/> \
          </tr> \
        </tbody> \
      </table> \
    </div> \
  </div>'}
var JQs=JQ.facebox.settings
JQ.fn.facebox=function(settings){facebox_init(settings)
var image_types=JQs.image_types.join('|')
image_types=new RegExp('\.'+image_types+'JQ','i')
var images=[]
JQ(this).each(function(){if(this.href.match(image_types)&&JQ.inArray(this.href,images)==-1)
images.push(this.href)})
if(images.length==1)images=null
function click_handler(){if(JQ('#facebox .loading').length==1)return false
facebox_loading()
var klass=this.rel.match(/facebox\[\.(\w+)\]/)
if(klass)klass=klass[1]
if(this.href.match(/#/)){var url=window.location.href.split('#')[0]
var target=this.href.replace(url,'')
facebox_reveal(JQ(target).clone().show(),klass)
}else if(this.href.match(image_types)){facebox_reveal_image(this.href,images,klass)
}else{JQ.get(this.href,function(data){facebox_reveal(data,klass)})}
return false}
return this.click(click_handler)}
function facebox_init(settings){if(JQs.inited&&typeof settings=='undefined')
return true
else
JQs.inited=true
if(settings)JQ.extend(JQs,settings)
JQ('body').append(JQs.facebox_html)
var preload=[new Image(),new Image()]
preload[0].src=JQs.close_image
preload[1].src=JQs.loading_image
JQ('#facebox').find('.b:first, .bl, .br, .tl, .tr').each(function(){preload.push(new Image())
preload.slice(-1).src=JQ(this).css('background-image').replace(/url\((.+)\)/,'JQ1')})
JQ('#facebox .close').click(facebox_close)
JQ('#facebox .close_image').attr('src',JQs.close_image)}
function facebox_loading(){if(JQ('#facebox .loading').length==1)return true
JQ(document).unbind('.facebox')
JQ('#facebox .content, #facebox .info, #facebox .navigation').empty()
JQ('#facebox .body').children().hide().end().append('<div class="loading"><img src="'+JQs.loading_image+'"/></div>')
var pageScroll=getPageScroll()
JQ('#facebox').css({top:pageScroll[1]+(getPageHeight()/10),left:pageScroll[0]}).show()
JQ(document).bind('keydown.facebox',function(e){if(e.keyCode==27)facebox_close()})}
function facebox_reveal(data,klass,extra_setup){JQ('#facebox .content').addClass(klass).append(data)
JQ('#facebox .loading').remove()
if(JQ.isFunction(extra_setup))extra_setup.call(this)
JQ('#facebox .body > *').fadeIn('normal')}
function facebox_reveal_image(href,images,klass){if(images)var extra_setup=facebox_setup_gallery(href,images,klass)
var image=new Image()
image.onload=function(){facebox_reveal('<div class="image"><img src="'+image.src+'" /></div>',klass,extra_setup)
if(images){var position=JQ.inArray(href,images)
var next=new Image()
next.src=images[position+1]?images[position+1]:images[0]}}
image.src=href}
function facebox_close(){facebox_stop_slideshow()
JQ(document).unbind('.facebox')
JQ('#facebox').fadeOut(function(){JQ('#facebox .content').removeClass().addClass('content')})
return false}
function facebox_setup_gallery(href,images,klass){var position=JQ.inArray(href,images)
var jump=function(where){facebox_loading()
if(where>=images.length)where=0
if(where<0)where=images.length-1
facebox_reveal_image(images[where],images,klass)}
return function(){JQ('#facebox .image').click(function(){jump(position+1)}).css('cursor','pointer')
JQ('#facebox .info').append('Immagine '+(position+1)+' di '+images.length)
JQ('#facebox .navigation').append('<img class="prev" src="'+JQs.prev_image+'"/>'+
'<img class="play" src="'+(JQs.playing?JQs.pause_image:JQs.play_image)+'"/>'+
'<img class="next" src="'+JQs.next_image+'"/>').find('img').css('cursor','pointer').end().find('.prev').click(function(){jump(position-1);return false}).end().find('.next').click(function(){jump(position+1);return false}).end()
JQ('#facebox .play').bind('click.facebox',function(){JQs.playing?facebox_stop_slideshow():facebox_start_slideshow()
return false})
JQ(document).bind('keydown.facebox',function(e){if(e.keyCode==39)jump(position+1)
if(e.keyCode==37)jump(position-1)})}}
function facebox_start_slideshow(){JQ('#facebox .play').attr('src',JQs.pause_image)
JQs.playing=setInterval(function(){JQ('#facebox .next').click()},JQs.slide_duration*1000)}
function facebox_stop_slideshow(){JQ('#facebox .play').attr('src',JQs.play_image)
clearInterval(JQs.playing)
JQs.playing=false}
function getPageScroll(){var xScroll,yScroll;if(self.pageYOffset){yScroll=self.pageYOffset;xScroll=self.pageXOffset;}else if(document.documentElement&&document.documentElement.scrollTop){yScroll=document.documentElement.scrollTop;xScroll=document.documentElement.scrollLeft;}else if(document.body){yScroll=document.body.scrollTop;xScroll=document.body.scrollLeft;}
return new Array(xScroll,yScroll)}
function getPageHeight(){var windowHeight
if(self.innerHeight){windowHeight=self.innerHeight;}else if(document.documentElement&&document.documentElement.clientHeight){windowHeight=document.documentElement.clientHeight;}else if(document.body){windowHeight=document.body.clientHeight;}
return windowHeight}})(jQuery);
