// Created by Michał Wołek - "Miwol" http://miwol.eu
miwolPreviewSettings={delay: 2000,
                 speed: 'fast',
                 opacity: '0.7',
                 slideshow: true,
                 language: {pictureNr1: 'Zdjęcie',
                            pictureNr2: 'z',
                            keyPrev: 'Strzałka w lewo',
                            keyNext: 'Strzałka w prawo',
                            keySlideshow: 'Klawisz PAUSE/BREAK',
                            keyExit: 'Klawisz ESC',
                            error: 'Zdjęcie nie może być załadowane.'
                 }
}
var miwolPreviewLewa, miwolPreviewGora, miwolPreviewZmienne;
var miwolPreviewObiekty=new Array();
jQuery.miwolPreview={'Version':'1.0', 'Author':'Michał Wołek - Miwol'};
jQuery.fn.miwolPreview=function(settings) {
  miwolPreviewObiekty.push(jQuery(this));
  miwolPreviewSettings=jQuery.extend(miwolPreviewSettings, settings);
  if(miwolPreviewZmienne==undefined) jQuery.miwolPreview.init=function() {
    if(miwolPreviewZmienne!=undefined)
      return true;
    miwolPreviewZmienne={
      nr: 0,
      wysokosc: 0,
      szerokosc: 0,
      max: new Array(),
      zdjecia: new Array(),
      tytuly: new Array(),
      opisy: new Array(),
      zdjecieTymczasowe: new Image(),
      interwal: 0,
      dziala: false,
      rel: '',
      obiekty: new Array()
    };
    //miwolPreviewZmienne.szerokosc=jQuery('body').width();
    //miwolPreviewZmienne.wysokosc=jQuery('body').height();
    miwolPreviewZmienne.szerokosc=jQuery(document).width()>jQuery('body').width()?jQuery(document).width():jQuery('body').width();
    miwolPreviewZmienne.wysokosc=jQuery(document).height()>jQuery('body').height()?jQuery(document).height():jQuery('body').height();
    miwolPreviewZmienne.zdjecieTymczasowe.onload=function() {
      if(!jQuery('#miwolPreviewTlo').is(':visible'))
        return true;
      miwolPreviewZmienne.zdjecia[miwolPreviewZmienne.rel][miwolPreviewZmienne.nr]['width']=miwolPreviewZmienne.zdjecieTymczasowe.width;
      miwolPreviewZmienne.zdjecia[miwolPreviewZmienne.rel][miwolPreviewZmienne.nr]['height']=miwolPreviewZmienne.zdjecieTymczasowe.height;
      jQuery.miwolPreview.pokaz();
    }
    miwolPreviewZmienne.zdjecieTymczasowe.onerror=function() {
      alert(miwolPreviewZmienne.zdjecieTymczasowe.src+'=\n'+miwolPreviewSettings.language.error);
      jQuery.miwolPreview.wylacz();
    }
    jQuery('body').prepend('<!--[if IE]>\
      <style type="text/css" title="currentStyle" media="screen">\
        #miwolPreviewTlo {\
          filter: alpha(opacity=80);\
        }\
      </style>\
    <![endif]-->\
    <div id="miwolPreviewTlo"></div>\
    <div id="miwolPreviewPowiekszenie">\
      <div id="miwolPreviewTytul"></div>\
      <div id="miwolPreviewNawigator">\
        <div id="miwolPreviewClose" onClick="jQuery.miwolPreview.wylacz();" title="'+miwolPreviewSettings.language.keyExit+'"></div>\
      </div>\
      <div id="miwolPreviewGora">\
        <div id="miwolPreviewLT"></div>\
        <div id="miwolPreviewRT"></div>\
      </div>\
      <div id="miwolPreviewSrodek" class="miwolPreviewPoczatek">\
        <div id="miwolPreviewPrev" title="'+miwolPreviewSettings.language.keyPrev+'"></div>\
        <div id="miwolPreviewNext" title="'+miwolPreviewSettings.language.keyNext+'"></div>\
      </div>\
      <p id="miwolPreviewOpis"></p>\
      <div id="miwolPreviewDol">\
        <div id="miwolPreviewLB"></div>\
        <div id="miwolPreviewRB"></div>\
      </div>\
    </div>');
    if(miwolPreviewSettings.slideshow) {
      jQuery('#miwolPreviewNawigator').append('<div id="miwolPreviewPokaz" onClick="jQuery.miwolPreview.pokazSlajdow();" title="'+miwolPreviewSettings.language.keySlideshow+'"></div>');
    }
    jQuery('#miwolPreviewPrev').mouseover(function() {
      jQuery(this).addClass('miwolPreviewPrevImg');
    }).mouseout(function() {
      jQuery(this).removeClass('miwolPreviewPrevImg');
    }).click(function() {
      jQuery.miwolPreview.prev();
    });
    jQuery('#miwolPreviewNext').mouseover(function() {
      jQuery(this).addClass('miwolPreviewNextImg');
    }).mouseout(function() {
      jQuery(this).removeClass('miwolPreviewNextImg');
    }).click(function() {
      jQuery.miwolPreview.next();
    });
    jQuery('#miwolPreviewTlo').click(function() {
      jQuery.miwolPreview.wylacz();
    });
    jQuery.miwolPreview.wlacz=function() {
      miwolPreviewZmienne.szerokosc=jQuery(document).width()>jQuery('body').width()?jQuery(document).width():jQuery('body').width();
      miwolPreviewZmienne.wysokosc=jQuery(document).height()>jQuery('body').height()?jQuery(document).height():jQuery('body').height();
      jQuery('#miwolPreviewPrev').addClass('hidden');
      jQuery('#miwolPreviewNext').addClass('hidden');
      jQuery('#miwolPreviewTlo')
        .css({
          height:jQuery(document).height()+'px',
          width:jQuery(document).width()+'px'
        })
        .show();
      jQuery('#miwolPreviewPowiekszenie').fadeIn(miwolPreviewSettings.speed, function() {
        miwolPreviewZmienne.zdjecieTymczasowe.src=miwolPreviewZmienne.zdjecia[miwolPreviewZmienne.rel][miwolPreviewZmienne.nr]['src'];
      });
    }
    jQuery.miwolPreview.pokaz=function() {
      miwolPreviewLewa=(miwolPreviewZmienne.szerokosc-(miwolPreviewZmienne.zdjecia[miwolPreviewZmienne.rel][miwolPreviewZmienne.nr]['width']+121))/2;
      if(miwolPreviewLewa<0)
        miwolPreviewLewa=0;
      miwolPreviewGora=miwolPreviewZmienne.zdjecia[miwolPreviewZmienne.rel][miwolPreviewZmienne.nr]['gora']-(miwolPreviewZmienne.zdjecia[miwolPreviewZmienne.rel][miwolPreviewZmienne.nr]['height']/2);
      if(miwolPreviewZmienne.zdjecia[miwolPreviewZmienne.rel][miwolPreviewZmienne.nr]['gora']+miwolPreviewZmienne.zdjecia[miwolPreviewZmienne.rel][miwolPreviewZmienne.nr]['height']+121>miwolPreviewZmienne.wysokosc)
        miwolPreviewGora=miwolPreviewZmienne.wysokosc-119-miwolPreviewZmienne.zdjecia[miwolPreviewZmienne.rel][miwolPreviewZmienne.nr]['height'];
      if(miwolPreviewGora<0)
        miwolPreviewGora=0;
      jQuery('#miwolPreviewPowiekszenie').animate({left:miwolPreviewLewa+'px', top:miwolPreviewGora+'px', width:(miwolPreviewZmienne.zdjecia[miwolPreviewZmienne.rel][miwolPreviewZmienne.nr]['width']+33)+'px'}, miwolPreviewSettings.speed)
      jQuery('#miwolPreviewSrodek')
        .animate({width:miwolPreviewZmienne.zdjecia[miwolPreviewZmienne.rel][miwolPreviewZmienne.nr]['width']+'px', height:miwolPreviewZmienne.zdjecia[miwolPreviewZmienne.rel][miwolPreviewZmienne.nr]['height']+'px'}, miwolPreviewSettings.speed)
        .queue(function() {
          jQuery(this).css('background-image', 'url('+miwolPreviewZmienne.zdjecia[miwolPreviewZmienne.rel][miwolPreviewZmienne.nr]['src']+')');
          jQuery('#miwolPreviewTytul').text(miwolPreviewZmienne.tytuly[miwolPreviewZmienne.rel][miwolPreviewZmienne.nr]);
          jQuery('#miwolPreviewOpis').html(miwolPreviewZmienne.opisy[miwolPreviewZmienne.rel][miwolPreviewZmienne.nr]+'<br><br>'+miwolPreviewSettings.language.pictureNr1+' '+miwolPreviewZmienne.nr+' '+miwolPreviewSettings.language.pictureNr2+' '+miwolPreviewZmienne.max[miwolPreviewZmienne.rel]);
          switch(miwolPreviewZmienne.nr) {
            case 1:
              jQuery('#miwolPreviewNext').removeClass('hidden');
              break;
            case miwolPreviewZmienne.max[miwolPreviewZmienne.rel]:
              jQuery('#miwolPreviewPrev').removeClass('hidden');
              break;
            default:
              jQuery('#miwolPreviewPrev').removeClass('hidden');
              jQuery('#miwolPreviewNext').removeClass('hidden');
          }
          if(miwolPreviewZmienne.dziala)
            miwolPreviewZmienne.interwal=setTimeout('jQuery.miwolPreview.timeout()', miwolPreviewSettings.delay);
          jQuery(this).dequeue();
        });
    }
    jQuery.miwolPreview.czysc=function() {
      if(miwolPreviewZmienne.dziala)
        clearTimeout(miwolPreviewZmienne.interwal);
      jQuery('#miwolPreviewPrev').addClass('hidden');
      jQuery('#miwolPreviewNext').addClass('hidden');
      jQuery('#miwolPreviewTytul').text('');
      jQuery('#miwolPreviewOpis').text('');
      jQuery('#miwolPreviewSrodek').css('background-image', '');
    }
    jQuery.miwolPreview.wylacz=function() {
      if(miwolPreviewZmienne.dziala)
        jQuery.miwolPreview.pokazSlajdow();
      jQuery('#miwolPreviewPowiekszenie').fadeOut(miwolPreviewSettings.speed, function() {
        jQuery.miwolPreview.czysc();
        jQuery(this).css({left:((miwolPreviewZmienne.szerokosc-242)/2)+'px', top:((miwolPreviewZmienne.wysokosc-350)/2)+'px', width:''});
        jQuery('#miwolPreviewSrodek').css({width:'', height:''});
      });
      jQuery('#miwolPreviewTlo').hide();
    }
    jQuery.miwolPreview.prev=function() {
      if(jQuery('#miwolPreviewTlo').is(':visible'))
      if(miwolPreviewZmienne.nr>1) {
        miwolPreviewZmienne.nr--;
        jQuery.miwolPreview.czysc();
        jQuery.miwolPreview.preloader();
      }
    }
    jQuery.miwolPreview.next=function() {
      if(jQuery('#miwolPreviewTlo').is(':visible'))
      if(miwolPreviewZmienne.nr<miwolPreviewZmienne.max[miwolPreviewZmienne.rel]) {
        miwolPreviewZmienne.nr++;
        jQuery.miwolPreview.czysc();
        jQuery.miwolPreview.preloader();
      }
    }
    jQuery.miwolPreview.pokazSlajdow=function() {
      if(miwolPreviewSettings.slideshow && jQuery('#miwolPreviewTlo').is(':visible')) {
        if(miwolPreviewZmienne.dziala) {
          miwolPreviewZmienne.dziala=false;
          jQuery("#miwolPreviewPokaz").removeClass('lajtoxStop');
          clearTimeout(miwolPreviewZmienne.interwal);
        } else {
          miwolPreviewZmienne.dziala=true;
          jQuery("#miwolPreviewPokaz").addClass('lajtoxStop');
          miwolPreviewZmienne.interwal=setTimeout('jQuery.miwolPreview.timeout()', miwolPreviewSettings.delay);
        }
      }
    }
    jQuery.miwolPreview.load=function() {
      for(i in miwolPreviewObiekty) {
        miwolPreviewObiekty[i].find("a[rel^='miwolPreview']").each(function(i, nazwa) {
          miwolPreviewLewa=jQuery(this).attr('rel');
          miwolPreviewLewa=miwolPreviewLewa.replace('[', '');
          miwolPreviewLewa=miwolPreviewLewa.replace(']', '');
          jQuery(this).removeAttr('rel').attr('target', miwolPreviewLewa);
          if(i==0) {
            miwolPreviewZmienne.tytuly[miwolPreviewLewa]=undefined;
            miwolPreviewZmienne.opisy[miwolPreviewLewa]=undefined;
            miwolPreviewZmienne.zdjecia[miwolPreviewLewa]=undefined;
            miwolPreviewZmienne.max[miwolPreviewLewa]=0;
          }
          if(miwolPreviewZmienne.tytuly[miwolPreviewLewa]==undefined) {
            miwolPreviewZmienne.tytuly[miwolPreviewLewa]=new Array();
            miwolPreviewZmienne.opisy[miwolPreviewLewa]=new Array();
            miwolPreviewZmienne.zdjecia[miwolPreviewLewa]=new Array();
            miwolPreviewZmienne.max[miwolPreviewLewa]=0;
          }
          miwolPreviewZmienne.max[miwolPreviewLewa]++;
          jQuery(this).data('nr', miwolPreviewZmienne.max[miwolPreviewLewa]);
          miwolPreviewZmienne.tytuly[miwolPreviewLewa][miwolPreviewZmienne.max[miwolPreviewLewa]]=jQuery(this).attr('title')==undefined?'':jQuery(this).attr('title');
          miwolPreviewZmienne.opisy[miwolPreviewLewa][miwolPreviewZmienne.max[miwolPreviewLewa]]=jQuery(this).find('img').attr('alt')==undefined?'':jQuery(this).find('img').attr('alt');
          miwolPreviewZmienne.zdjecia[miwolPreviewLewa][miwolPreviewZmienne.max[miwolPreviewLewa]]={'src':jQuery(this).attr('href'), 'width':0, 'height':0, 'gora':jQuery(this).offset().top};
          jQuery(this).removeAttr('href').find('img').addClass('pointer');
          jQuery(this).click(function() {
            miwolPreviewZmienne.nr=jQuery(this).data('nr');
            miwolPreviewZmienne.rel=jQuery(this).attr('target');
            jQuery.miwolPreview.wlacz();
            return false;
          });
        });
        miwolPreviewObiekty.shift();
      }
    }
    jQuery.miwolPreview.timeout=function() {
      if(miwolPreviewZmienne.nr==miwolPreviewZmienne.max[miwolPreviewZmienne.rel]) {
        miwolPreviewZmienne.nr=2;
        jQuery("#miwolPreviewPrev").click();
      } else {
        jQuery("#miwolPreviewNext").click();
      }
    }
    jQuery.miwolPreview.preloader=function() {
      if(!miwolPreviewZmienne.zdjecia[miwolPreviewZmienne.rel][miwolPreviewZmienne.nr]['width']) {
        miwolPreviewZmienne.zdjecieTymczasowe.src=miwolPreviewZmienne.zdjecia[miwolPreviewZmienne.rel][miwolPreviewZmienne.nr]['src'];
      } else {
        jQuery.miwolPreview.pokaz();
      }
    }
    jQuery(document).keydown(function(e) {
      if(jQuery('#miwolPreviewTlo').is(':visible'))
      switch(e.keyCode) {
        case 19:
          jQuery.miwolPreview.pokazSlajdow();
          return false;
          break;
        case 37:
          jQuery.miwolPreview.prev();
          return false;
          break;
        case 39:
          jQuery.miwolPreview.next();
          return false;
          break;
        case 27:
          jQuery.miwolPreview.wylacz();
          return false;
          break;
      }
    });
  }
  jQuery(this).ready(function() {
    jQuery.miwolPreview.init();
    jQuery.miwolPreview.load();
  });
  return jQuery.miwolPreview;
}

