$(function($){

var mapUrl=''; /* ścieżka do pliku .png;
                  jeżeli mapa nie ładuje się poprawnie zamień na bezpośrednie odwołanie do pliku, np:
                  var mapUrl='http://example.com/map/pl-340px.png'; 
                  domyślnie ścieżka pobierana jest z pliku CSS, ale w niektórych przypadkach nie ładuje się prawidłowo */
var loadingText="Loading ..."; // tekst wyświetlany podczas ładowania mapy
var loadingErrorText="Brak mapy!"; // tekst błędu; wyświetlany, gdy nie został załadowany plik .png
var tooltipArrowHeight=4; /* wysokość strzałki pod 'dymkiem' z nazwą regionu;
                             strzałkę możesz usunąć w pliku CSS, 
                             po usunięciu strzałki ustaw: 
                             var tooltipArrowHeight=0; */
var IdListyAdresow='#adresy'; /* id div.a z listą adresów/przedstawicieli
                                 nie zapomnij o znaku hash (#)  */

// TRYB WIELOKROTNEGO WYBORU (MULTIPLE-CLICK)

var searchLink='szukaj.php'; // odnośnik do wyszukiwarki
var searchLinkVar='wojewodztwo'; // zmienna przekazywana do skryptu wyszukiwarki
var searchName='Szukaj'; // tekst odnośnika do wyszukiwarki

  $.multipleClickAction = function(e){
    var clickedRegions=[];
    $('#polska').find('.active-region').each(function(){ // szuka wybranych regionów (NIE EDYTUJ!)
       var url=$(this).children('a').attr('href'); // pobiera odnośniki wybranych regionów (NIE EDYTUJ!)

       // operacje na linkach

       var slicedUrl=url.slice(1); // domyślnie odcina hash (#) w odnośniku
       /* jeżeli użyjesz bezpiecznych odnośników, np: 'szukaj.php?wojewodztwo=mazowieckie'
          musisz 'odciąć' także parametry odnośnika:

          var slicedUrl=url.slice(url.indexOf('?')+13); // usuwa: '?wojewodztwo=' ... +13 to ilość odciętych znaków
       */


       // uzupełnia tablicę wybranymi regionami (NIE EDYTUJ!)
       clickedRegions.push(slicedUrl);
    });

    // tworzy odnośnik do wyszukiwarki wraz z zaznaczonymi regionami
    $('#search-link').attr('href',searchLink+'?'+searchLinkVar+'='+clickedRegions.join('|'));

   }

// FUNKCJE STANDARDOWE

  // kliknięcie w region
  $.defaultClickAction = function(e){
    var url = $(e).children('a').attr('href'); // pobiera adres odnośnika klikniętego regionu (NIE EDYTUJ!)

    // domyślnie kliknięcie w region przenosi na stronę w odnośniku
    window.location.href=url; 

    // wyświetla adres przedstawiciela w wybranym regionie
    $(IdListyAdresow).find('li:visible').hide();
    $(url).show();
  }

  // ponowne kliknięcie w zaznaczony region
  $.doubleClickedRegion = function(e){
    // domyślnie deaktywuje zaznaczony region
    $(e).removeClass('active-region');

    // ukrywa adresy przedstawicieli
    $(IdListyAdresow).find('li:visible').hide();
   }


/* --------------------------------------------------------
tutaj zaczyna sie mapa

NIE EDYTUJ! 

Polska, interaktywna mapa województw | http://winstonwolf.pl/clickable-maps/polska.html
script version: 3.3 by Winston Wolf | http://winstonwolf.pl
Copyright (C) 2011 Winston_Wolf | All rights reserved


poważnie, NIE EDYTUJ TEGO! */
  $('#mapa').prepend('<span id="loader">'+loadingText+'</span>').addClass('script'); $('#polska').find('a').hide(); $(IdListyAdresow).find('li').hide(); if($('#mapa').hasClass('multiple-click')){ if(searchLink==''){ searchLink='search.php'; } if(searchLinkVar==''){ searchLinkVar='region'; } if(searchName==''){ searchName='Search'; } $('<a href="'+searchLink+'" id="search-link">'+searchName+'</a>').insertAfter('#polska'); } if(mapUrl==''){ var mapUrl=$('#polska').css('background-image').replace(/"/g,"").replace(/url\(|\)$/ig, ""); } var mapImg=new Image();
  $(mapImg).load(function(){
    var countRegions=0; $('#loader').fadeOut();
    $('#polska').find('li').each(function(){
      var liid=$(this).attr('id'); var code=null; countRegions++;
      switch(liid){ case 'pl6': case 'pl8': case 'pl13': case 'pl16': spans=26; break; case 'pl5': case 'pl7': case 'pl15': spans=47; break; default: spans=31; }
      var tooltipLeft=$(this).children('a').outerWidth()/-2; var tooltipTop=$(this).children('a').outerHeight()*-1-tooltipArrowHeight; if($('#mapa').hasClass('no-tooltip')){ var tooltipTop=0; }
      $(this).prepend('<span class="map" />').append('<span class="bg" />').attr('tabindex',countRegions); for(var i=1;i<spans;i++){$(this).find('.map').append('<span class="s'+i+'" />');}
      $(this).children('a').css({'display':'none','margin-left':tooltipLeft,'margin-top':tooltipTop,'visibility':'visible'});
      if($(this).children('a').hasClass('active-region')){ $(this).addClass('active-region focus'); }
     }).hover(function(){ $.MapHoveredRegion($(this)); },function(){ $.MapUnHoveredRegion($(this)); }).focus(function(){ $.MapHoveredRegion($(this)); }).blur(function(){ $.MapUnHoveredRegion($(this)); }).keypress(function(e){ code=(e.keyCode ? e.keyCode : e.which); if(code==13) $.MapClickedRegion($(this));}).click(function(e){$.MapClickedRegion($(this)); });
   }).error(function(){$('#loader').text(loadingErrorText); $('#polska').find('span').hide(); $('#mapa,#polska').css({'height':'auto','left':'0','margin':'0 auto'});}).attr('src',mapUrl);
  $.MapClickedRegion = function(e){ if($('#mapa').hasClass('multiple-click')){ if($(e).hasClass('active-region')){ $(e).removeClass('active-region'); } else{ $(e).addClass('active-region'); } $.multipleClickAction(e); } else{ if($(e).hasClass('active-region')){ $.doubleClickedRegion(e); } else{ $('#polska').find('.active-region').removeClass('active-region'); $('#polska').find('.focus').removeClass('focus'); if($(e).hasClass('active-region')){ $(e).removeClass('active-region focus'); } else{ $(e).addClass('active-region focus').children('a').show(); } $.defaultClickAction(e); } } }
  $.MapHoveredRegion = function(e){ $('#polska').find('.active-region').children('a').hide(); $(e).children('a').show(); $(e).addClass('focus'); }
  $.MapUnHoveredRegion = function(e){ $(e).children('a').hide(); if($(e).hasClass('active-region')==false){ $(e).removeClass('focus'); } }
  var loaderLeft=$('#loader').outerWidth()/-2; var loaderTop=$('#loader').outerHeight()*-1; $('#loader').css({'margin-left':loaderLeft,'margin-top':loaderTop});
// koniec mapy

});
