/*
 * CSS & jQuery clickable maps plugin
 * http://winstonwolf.pl/clickable-maps
 * script version: 4.1.5 | February 19th, 2012
 * Copyright (C) 2009 - 2012 Winston_Wolf | All rights reserved
*/
;(function($){$.fn.cssMap=function(options){var s=$.extend({'size':'810','tooltips':true,'tooltipArrowHeight':5,'multipleClick':false,'searchUrl':'search.php','searchLink':'Search','searchLinkVar':'region','clicksLimit':0,'cities':false,'visibleList':false,'agentsListId':'','loadingText':'Loading ...','onHover':function(e){},'onClick':function(e){}},options);return this.each(function(index){if(!$(this).attr('id')){$(this).attr('id','css-map'+(index+1));}var mapContainer='#'+$(this).attr('id'),mapList=$(mapContainer).find('ul').first(),mapListClass=$(mapList).attr('class'),li=$(mapList).find('li'),countClicks='',cli='',allSizes='',M={init:function(){M.clearMap();$(mapContainer).addClass('css-map-container m'+s.size);var mapUrl=mapList.css('background-image').replace(/^url\("?([^\"\))]+)"?\)$/i,'$1');this.loader(mapUrl);},loader:function(mapUrl){var mapImg=new Image(),preloader=$('<span />',{'class':'map-loader',text:s.loadingText}).appendTo($(mapContainer));preloader.css({'left':'50%','margin-left':preloader.outerWidth()/-2,'margin-top':preloader.outerHeight()/-2,'top':$(mapList).outerHeight()/2});$(mapContainer).addClass('m'+s.size);$(mapList).addClass('css-map');M.agentslist.hideAgents();$(mapImg).load(function(){if($.browser.msie&&parseInt($.browser.version)<=7){var ie=true;}if(s.cities&&!ie){$(mapContainer).append('<span class="cities '+mapListClass+'-cities" />');}if(ie){$(mapContainer).addClass('ie');}M.regions.init();if($(s.agentsListId).length){M.agentslist.init();}if(s.multipleClick){M.searchButton();}preloader.delay(750).fadeOut('slow');}).error(function(){if(mapUrl=='none'){mapUrl=' file not found';}preloader.fadeOut();$(mapList).removeClass();$(mapContainer).prepend('<p class="map-error"><b>Map image not found!</b><br/>Check path to the map: '+mapUrl+'</p>');}).attr('src',mapUrl);},regions:{init:function(){li.each(function(){var t=$(this),lC=t.attr('class'),lA=t.children('a'),lH=$(lA).attr('href');if(typeof lH=="undefined"||lH.length<2){$(t).remove();}M.regions.copyList($(t),lC,lA,lH);M.selectRegion.init($(t),lC,lA,lH);M.regions.createSpans($(t),lC);});if(s.visibleList){M.regions.createList(cli);M.selectRegion.initVisibleList();}M.regions.autoSelectRegion();},createSpans:function(l,lC){var m='<span class="m">',cs=[],abbr='',lA=l.children('a'),tA=$('<span class="tooltip-arrow" />').appendTo(lA);switch(mapListClass){case'australia':abbr='au';cs=[3,21,5,15,8,15,13];break;case'brasil':abbr='br';cs=[12,8,11,34,28,13,2,5,22,19,23,18,30,34,9,11,19,17,9,10,15,13,14,12,21,6,23];break;case'canada':abbr='ca';cs=[8,11,10,3,19,20,6,31,17,2,21,3,12];break;case'cesko':abbr='cs';cs=[5,15,21,10,18,16,12,16,25,19,14,28,14,15];break;case'continents':abbr='c';cs=[12,23,11,18,21,10];break;case'cuba':abbr='cu';cs=[8,20,18,7,12,10,4,16,9,12,11,5,14,15,11,15];break;case'danmark':abbr='dk';cs=[15,40,37,24,30,2];break;case'deutschland':abbr='de';cs=[31,41,7,38,6,8,38,25,64,37,24,9,25,31,20,33];break;case'baden-wurttemberg':abbr='dea';cs=[26,8,25,16,17,29,17,14,18,13,7,15,12,6,11,25,5,18,21,6,14,11,18,13,5,16,19,15,6,21,19,14,19,20,15,16,18,22,9,14,16,7,13,15];break;case'bayern':abbr='deb';cs=[8,8,16,3,17,5,10,3,9,6,10,11,17,3,17,4,9,11,12,3,9,11,7,13,14,8,14,7,2,14,8,10,9,7,6,3,8,8,13,13,4,5,2,4,12,10,6,9,10,15,4,7,4,12,4,10,7,12,13,6,6,8,14,11,15,6,12,11,19,14,3,10,11,15,3,8,16,2,14,12,3,13,14,4,6,4,14,9,14,14,4,14,11,6,14,4];break;case'berlin':abbr='dec';cs=[18,15,21,15,17,18,19,17,22,16,17,25];break;case'brandenburg':abbr='ded';cs=[16,11,8,31,16,3,16,18,20,18,25,22,4,28,15,20,23,18];break;case'bremen':abbr='dee';cs=[14,11,12,8,8,17,7,12,18,14,7,31,11,11,11,8,6,12,9,10,9,8,12,8];break;case'hamburg':abbr='def';cs=[14,21,17,24,23,36,23];break;case'hessen':abbr='deg';cs=[13,6,14,13,14,16,12,19,13,19,4,17,12,19,10,18,8,4,9,11,21,22,15,14,21,6];break;case'mecklenburg-vorpommern':abbr='deh';cs=[28,26,15,29,8,5,19,16];break;case'niedersachsen':abbr='dei';cs=[10,11,4,13,14,13,3,17,4,18,11,12,11,7,9,10,9,17,10,10,13,12,11,14,13,13,12,2,15,3,9,7,9,21,17,6,8,15,11,10,9,8,3,10,12,4];break;case'nordrhein-westfalen':abbr='dej';cs=[12,6,5,4,15,5,16,7,6,13,6,10,7,11,4,15,7,6,10,9,4,15,12,15,9,4,5,14,12,14,8,7,4,9,12,3,12,15,16,3,13,12,18,13,11,12,6,14,11,14,14,19,7];break;case'rheinland-pfalz':abbr='dek';cs=[16,17,20,16,19,21,16,16,16,16,4,11,19,8,5,13,7,6,7,21,27,5,14,4,19,16,15,4,23,20,9,26,17,19,6,4];break;case'saarland':abbr='del';cs=[21,22,26,28,29,19];break;case'sachsen':abbr='dem';cs=[24,8,9,23,19,17,8,17,27,14,18,15,17];break;case'sachsen-anhalt':abbr='den';cs=[20,25,26,14,11,6,17,19,7,21,23,23,28,12];break;case'schleswig-holstein':abbr='deo';cs=[14,4,20,8,9,5,15,18,12,14,24,26,22,12,15];break;case'thuringen':abbr='dep';cs=[8,10,5,10,6,20,21,18,15,5,19,8,16,14,21,17,10,17,8,17,21,5,17];break;case'espana':abbr='es';cs=[18,11,12,16,14,16,23,9,12,24,12,16,2,21,19,21,15,17,11,16,17,7,12,18,14,10,13,8,19,14,14,20,2,13,12,17,11,15,8,15,7,13,18,15,11,21,25,15,14,8,12,28];break;case'espana-autonomias':abbr='esa';cs=[24,30,12,7,12,11,48,57,17,2,24,27,14,11,16,2,18,16,12];break;case'europe':abbr='eu';cs=[5,2,9,10,5,6,7,10,4,9,9,5,15,22,7,14,12,8,7,7,2,24,2,7,2,7,2,4,2,7,2,4,8,30,12,4,11,42,6,5,5,11,26,6,10,20,17];break;case'europe-russia':abbr='euru';cs=[4,2,8,14,8,7,8,13,3,10,8,6,21,20,9,14,10,10,4,6,21,5,8,2,7,2,4,2,9,2,5,5,27,14,7,12,82,2,9,8,4,18,21,8,14,25,14,6,10,45,16,32,14,18,28];break;case'france':abbr='fr';cs=[13,25,25,14,27,14,25,21,8,19,12,13,28,15,18,27,11,26,17,25,24,34,2,2,2,2,2];break;case'ireland':abbr='ie';cs=[44,12,44,43,49,43,29,41];break;case'italia':abbr='it';cs=[16,12,13,18,29,10,24,16,27,15,12,22,23,9,27,28,15,14,6,24];break;case'nederland':abbr='nl';cs=[23,18,23,34,20,16,23,22,25,23,15,24];break;case'norge':abbr='no';cs=[10,10,14,14,13,10,13,12,19,17,3,7,10,13,16,16,9,18,7,4];break;case'norge-delt':abbr='nod';cs=[15,19,21,14,23,16,17,17,21,25,3,9,15,18,26,13,15,19,12,4];break;case'polska':abbr='pl';cs=[31,31,28,25,36,22,47,22,28,30,30,27,24,29,46,26];break;case'slovensko':abbr='sk';cs=[33,16,29,32,27,29,32,25];break;case'sverige':abbr='se';cs=[7,30,20,6,13,39,14,17,13,30,11,15,7,9,11,10,19,34,28,10,18];break;case'switzerland':abbr='ch';cs=[27,12,7,22,4,61,34,11,14,35,17,24,17,12,12,10,15,31,28,22,19,16,31,47,6,20];break;case'turkiye':abbr='tr';cs=[16,8,12,12,7,11,19,17,7,7,9,12,5,10,6,6,8,10,8,10,10,8,9,13,13,13,6,7,10,10,18,8,11,9,10,6,6,4,11,9,13,10,8,14,8,10,13,4,6,8,9,7,23,10,12,11,9,12,13,10,7,10,8,6,8,6,10,12,8,7,16,7,8,10,6,8,6,8,3,10,5];break;case'united-kingdom':abbr='uk';cs=[31,23,10,18,24,28,30,31,24,9,8,9,10,12,12,14,17,8,16,23,11,6,14,17,7,28,19,14,19,20];break;case'usa':abbr='usa';cs=[5,6,8,6,18,2,3,4,10,9,5,11,11,4,5,5,12,6,6,8,5,9,14,7,10,10,5,14,5,6,3,10,10,3,7,6,4,5,3,8,3,6,15,3,4,10,5,2,11,8,2];break;case'south-africa':abbr='za';cs=[20,19,11,14,14,21,34,24,24];break;}for(var i=0;i<cs.length;i++){var ii=i+1;if(lC==abbr+ii){for(var s=1;s<cs[i];s++){m+='<span class="s'+s+'" />';}break;}}m+='</span>';l.prepend(m).append('<span class="bg" />');},showTooltip:function(l){if(s.tooltips){var lA=mapList.find(l).children('a'),mW=mapList.outerWidth(),aMT=(lA.outerHeight()*-1)-s.tooltipArrowHeight,aML=lA.outerWidth()/-2,aL=lA.position().left,aT=lA.position().top;if((aML*-1)>aL){$(lA).addClass('tooltip-left').css('left',0);aML=0;}if((aML*-1)+aL>mW){$(lA).addClass('tooltip-right');aML=0;}if((aMT*-1)>aT){$(lA).addClass('tooltip-top');aMT=s.tooltipArrowHeight;}if($(lA).hasClass('tooltip-middle')){aMT=lA.outerHeight()/-2;}lA.css({'margin-left':aML,'margin-top':aMT});}},hideTooltips:function(){mapList.find('a').css('margin-top','-9999em');},copyList:function(l,lC,lA,lH){var lT=lA.html();if(typeof lH!="undefined"&&lH.length>=2){cli+='<li class="'+lC+'"><a href="'+lH+'">'+lT+'</a></li>';}},createList:function(cli){$(mapList).after('<ul class="map-visible-list">'+cli+'</ul>');},autoSelectRegion:function(){var a=$(mapContainer).find('.active-region'),lC=mapContainer+' .'+a.parent('li').attr('class');if(a.length){M.selectRegion.clicked($(lC));}}},selectRegion:{init:function(l,lC,lA,lH){var lC=mapContainer+' .'+lC,code=null;if($('base').length&&!/http/i.test(lA)){lH=$('base').attr('href')+lH;}M.selectRegion.autoSelect(lA);l.hover(function(){M.selectRegion.onHover($(lC));},function(){M.selectRegion.unHover($(lC));}).click(function(){M.selectRegion.clicked($(lC));if($(s.agentsListId).length||s.multipleClick){return false;}else{window.location.href=lH;}});lA.focus(function(){M.selectRegion.onHover($(lC));}).blur(function(){M.selectRegion.unHover($(lC));}).keypress(function(e){code=(e.keyCode?e.keyCode:e.which);if(code==13){M.selectRegion.clicked($(lC));if($(s.agentsListId).length||s.multipleClick){return false;}else{window.location.href=lH;}}});},initVisibleList:function(){var vLi=$(mapContainer+' .map-visible-list').find('li');vLi.each(function(){var vA=$(this).children('a'),vC=mapContainer+' .'+$(this).attr('class');vA.hover(function(){M.selectRegion.onHover($(vC));},function(){M.selectRegion.unHover($(vC));}).focus(function(){M.selectRegion.onHover($(vC));}).blur(function(){M.selectRegion.unHover($(vC));}).click(function(){M.selectRegion.clicked($(vC));return false;}).keypress(function(){code=(e.keyCode?e.keyCode:e.which);if(code==13){M.selectRegion.clicked($(vC));return false;}});});},onHover:function(e){M.regions.hideTooltips();$(mapContainer).find('.focus');M.regions.showTooltip(e);e.addClass('focus');s.onHover(e);},unHover:function(e){M.regions.hideTooltips();e.removeClass('focus');},clicked:function(e){var lA=e.children('a'),lH=lA.attr('href'),r='';if($('base').length&&!/http/i.test(lA)){lH=$('base').attr('href')+lH;}if(e.hasClass('active-region')){e.removeClass('active-region').removeClass('focus');if($(s.agentsListId).length){$(s.agentsListId).find('li').hide();}countClicks--;}else{if(!/#/i.test(lH)){window.location.href=lH;return false;}if(s.clicksLimit==0||!s.multipleClick){s.clicksLimit=Infinity;}if(s.clicksLimit==1){r='region';}else{r='regions';}if(countClicks<s.clicksLimit){if(!s.multipleClick){$(mapContainer).find('.active-region').removeClass('active-region');}e.addClass('active-region');if($(s.agentsListId).length){M.agentslist.showAgent(lH);}countClicks++;s.onClick(e);}else{alert('You can select only '+s.clicksLimit+' '+r+'!');}}},multiple:function(){var clickedRegions=[],sb=$(mapContainer).find('.map-search-link');li.each(function(){var lA=$(this).children('a'),lH=lA.attr('href'),nlH;if(/#/i.test(lH)){nlH=lH.slice(1);}else if(/&/i.test(lH)){nlH=lH.slice(lH.indexOf('?')+(s.searchLinkVar.length)+2,lH.indexOf('&'));}else{nlH=lH.slice(lH.indexOf('?')+(s.searchLinkVar.length)+2);}if($(this).hasClass('active-region')){clickedRegions.push(nlH);}});if(clickedRegions.length){sb.attr('href',s.searchUrl+'?'+s.searchLinkVar+'='+clickedRegions.join('|'));}else{sb.attr('href',s.searchUrl);}},autoSelect:function(e){var aH=e.attr('href'),wH=window.location.hash;if(/#/i.test(aH)&&aH==wH){e.addClass('active-region');return false;}}},searchButton:function(){var sB=$('<a />',{href:s.searchUrl,'class':'map-search-link',text:s.searchLink});$(mapList).after(sB);sB.hover(function(){M.selectRegion.multiple();}).focus(function(){M.selectRegion.multiple();}).click(function(){M.selectRegion.multiple();}).keypress(function(){code=(e.keyCode?e.keyCode:e.which);if(code==13)M.selectRegion.multiple();});},agentslist:{init:function(){$(mapList).find('.active-region').each(function(){var lH=$(this).children('a').attr('href');$(s.agentsListId).find(lH).each(function(){M.agentslist.showAgent(lH);});});},showAgent:function(lH){M.agentslist.hideAgents();if($(lH).length){$(lH+','+lH+' li').show();}},hideAgents:function(){$(s.agentsListId).find('li').hide();}},clearMap:function(){for(var i=100;i<1290;i+=5){allSizes+=' m'+i;}$(mapContainer).removeClass(allSizes);$(mapList).removeClass('css-map');$(mapContainer).find('span, .map-visible-list, .map-search-link').remove();$(mapContainer).find('li').removeClass('focus').removeClass('active-region');}};M.init();});}})(jQuery);
