$(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/krakow-500px.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=6; /* 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='#dzielnice'; 
/* 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='dzielnica'; // zmienna przekazywana do skryptu wyszukiwarki
var searchName='Szukaj'; // tekst odnośnika do wyszukiwarki

  $.multipleClickAction = function(e){
    var clickedRegions=[];
    $('#krakow').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?dzielnica=stare-miasto'
      // musisz 'odciąć' także parametry odnośnika:

      //    var slicedUrl=url.slice(url.indexOf('?')+11); // usuwa: '?dzielnica=' ... +11 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('onClick'); // pobiera adres odnośnika klikniętego regionu (NIE EDYTUJ!)

    // domyślnie kliknięcie w region przenosi na stronę w odnośniku
   $('#dzielnice').load(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! 

Kraków, interaktywna mapa dzielnic | http://winstonwolf.pl/clickable-maps
script version: 3.3.2 by Winston Wolf | http://winstonwolf.pl
Copyright (C) 2011 Winston_Wolf | All rights reserved


poważnie, NIE EDYTUJ TEGO! */
  $('#mapa-krakow').prepend('<span id="loader">'+loadingText+'</span>').addClass('script'); $('#krakow').find('a').hide(); $(IdListyAdresow).find('li').hide(); if($('#mapa-krakow').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('#krakow'); } if(mapUrl==''){ var mapUrl=$('#krakow').css('background-image').replace(/"/g,"").replace(/url\(|\)$/ig, ""); } var mapImg=new Image();
  $(mapImg).load(function(){
    var countRegions=0; $('#loader').fadeOut();
    $('#krakow').find('li').each(function(){
      var liid=$(this).attr('id'); var code=null; countRegions++;
      switch(liid){case 'kr3': case 'kr4': case 'kr6': case 'kr10': case 'kr11': case 'kr12': case 'kr14': case 'kr17': spans=18; break; case 'kr7': spans=23; break; case 'kr8': case 'kr13': spans=28; break; case 'kr18': spans=30; break; default: spans=14; }
      var tooltipLeft=$(this).children('a').outerWidth()/-2; var tooltipTop=$(this).children('a').outerHeight()*-1-tooltipArrowHeight; if($('#mapa-krakow').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({'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); $('#krakow').find('span').hide(); $('#mapa-krakow,#krakow').css({'height':'auto','left':'0','margin':'0 auto'});}).attr('src',mapUrl);
  $.MapClickedRegion = function(e){ if($('#mapa-krakow').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{ $('#krakow').find('.active-region').removeClass('active-region'); $('#krakow').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){ $('#krakow').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()/-2; $('#loader').css({'margin-left':loaderLeft,'margin-top':loaderTop});
// koniec mapy

});
