var rid, cid, pid = 0;
//nowy kolor c13a3a
var mapa_styl = {
	obrys_styl:         {r:255,g:255,b:255,a:1,w:2},//'random', [styl_1, styl_2, styl_3,...]
	obrys:              true,//*/false,
	wypelnienie_styl:   {r:86,g:165,b:231,a:1},//'random', [styl_1, styl_2, styl_3,...]
	wypelnienie:        true//false
};
var mapa_styl_2 = {
	obrys_styl:         {r:255,g:255,b:255,a:1,w:2},//'random', [styl_1, styl_2, styl_3,...]
	obrys:              true,//*/false,
	wypelnienie_styl:   {r:48,g:126,b:190,a:1},//'random', [styl_1, styl_2, styl_3,...]
	wypelnienie:        true//false
};
var mapa_styl_hover = {
	obrys_styl:         {r:255,g:255,b:255,a:1,w:2},//'random', [styl_1, styl_2, styl_3,...]
	obrys:              true,//false
	wypelnienie_styl:   {r:198,g:35,b:40,a:1},//'random', [styl_1, styl_2, styl_3,...]
	wypelnienie:        true//false
};

var cien_styl_1 = {
	obrys_styl:         {r:0,g:0,b:0,a:0.3,w:5},//'random', [styl_1, styl_2, styl_3,...]
	obrys:              false,//false
	wypelnienie_styl:   {r:0,g:0,b:0,a:0.2},//'random', [styl_1, styl_2, styl_3,...]
	wypelnienie:        true//false
};
var cien_styl_2 = {
	obrys_styl:         {r:0,g:0,b:0,a:0.2,w:5},//'random', [styl_1, styl_2, styl_3,...]
	obrys:              false,//false
	wypelnienie_styl:   {r:0,g:0,b:0,a:0.1},//'random', [styl_1, styl_2, styl_3,...]
	wypelnienie:        true//false
};
var cien_styl_3 = {
	obrys_styl:         {r:0,g:0,b:0,a:0.2,w:5},//'random', [styl_1, styl_2, styl_3,...]
	obrys:              false,//false
	wypelnienie_styl:   {r:0,g:0,b:0,a:0.06},//'random', [styl_1, styl_2, styl_3,...]
	wypelnienie:        true//false
};
var powrot_klik = function(){
  /*$('#wojewodztwa').fadeTo("slow", 1);
  $('#powiaty').fadeTo("slow", 0, function(){$(this).hide()});
  $('#mapa_polski').fadeTo(0, 0.4);*/
  $('#wojewodztwa').css('visibility', 'visible');
  $('#powiaty').hide();
  $('#powiaty .mapa_odnosniki a, #powiaty .mapa_etykiety div').remove();
  $('#mapa_polski').hide();
  $('#info_box').hide();
};
//var powiat_click = function(){};
var s = 2;
var pw = [10,0];
var pp = [0,0];

var label_petla = 0;
var extra_labels = [];

var drawExtraLabels = function()
{
	if(extra_labels.length > 0)
	{
		var elc = $('<div/>').addClass('extra_labels');
		$.each(extra_labels, function(){
			var ex = $('<div/>').html(this.toString());
			$(elc).append(ex);
			
		});
		$("#powiaty .mapa_odnosniki").append(elc);
		
	}
	else
	{
		$("#powiaty .mapa_odnosniki .extra_labels").remove();
	}
}
var create_link_area = function(target, line, scale, offset, options, link)
{
	//alert(line)
	var skala = (scale > 0) ? scale : 1;
	var coords = [];
	
	
	var przesuniecie = typeof(offset) == 'object' ? offset : [0,0];
	
	$.each(line.coords, function(i){
		coords.push((this[0]*skala + przesuniecie[0]) + ','+ (this[1]*skala + przesuniecie[1]));
	});
	
	if(line.label_display == 1)
	{
		var etykieta = $('<div/>').addClass('etykieta');
		if(line.label_extra == 1)
		{
			label_petla++;
			etykieta.html(label_petla).addClass('etykieta_nr');
			extra_labels.push(label_petla+'. '+line.nazwa);
		}
		else
		{
			etykieta.html(line.nazwa);
		}
		if(line.miasto == 1)
		{
			etykieta.addClass('etykieta_miasto');
		}
		
		/*etykieta.hover(function(){
			var obszar = line;
			var mapa = target.find('.mapa_hover');
			mapa.canvas();
			draw_area(mapa, obszar, skala, przesuniecie, mapa_styl_hover);
			mapa.show().fadeOut(0).fadeIn(400);
		}, function(){
			target.find('.mapa_hover').uncanvas().hide();
		});*/
		etykieta.attr('id', 'label_'+line.typ+'_'+line.id);
		//etykieta.css('opacity',0.6);
		etykieta.click(link);
		target.find(".mapa_etykiety").append(etykieta);
		
		var top = line.label_y * skala + przesuniecie[1];
		var left = line.label_x * skala + przesuniecie[0];
		
		etykieta.css('top', top).css('left', left);
		//$('#wojewodztwa').find(".mapa_odnosniki").append(etykieta);
	}

	if(line.miasto == 1)
	{
		//alert(line.w+' '+line.h);
		var area = $('<a/>').attr('id', 'area_'+line.typ+'_'+line.id).css('cursor', 'pointer').addClass('area').width((line.w*skala)+'px').height((line.h*skala)+'px').css('top', line.ly*skala + przesuniecie[1]).css('left', line.lx*skala + przesuniecie[0]);
		area.hover(function()
		{
			var obszar = line;
			var mapa = target.find('.mapa_top_hover');
			mapa.canvas();
			draw_area(mapa, obszar, skala, przesuniecie, mapa_styl_hover);
			//mapa.fadeIn("fast");
      //if(mapa_styl.queue("fx").length > 0)mapa.clearQueue();
			mapa.show().fadeOut(0).fadeIn(400);
      if(line.typ == 0)
      {
        woj_hover(line);
      }
      if(parseInt(line.typ) == 1)
      {
        $('#info_box .area_name').html(line.nazwa);
        powiat_hover(line);
      }
		}, function(){
			target.find('.mapa_top_hover').uncanvas().hide();
      if(line.typ == 0)
      {
        woj_hoverout(line);
      }
      if(parseInt(line.typ) == 1)
      {
        $('#info_box .area_name').html('&nbsp;')
        powiat_hoverout(line);
      }
		});
		area.click(link);
		target.find(".mapa_odnosniki").append(area);
		
		/*var etykieta = $('<div/>').addClass('etykieta_miasto').html(line.nazwa.replace(' (miasto)', ''));
		etykieta.hover(function(){
			var obszar = line;
			var mapa = target.find('.mapa_top_hover');
			mapa.canvas();
			draw_area(mapa, obszar, skala, przesuniecie, mapa_styl_hover);
			//mapa.fadeIn("fast");
			mapa.show();
		}, function(){
			target.find('.mapa_top_hover').uncanvas().hide();
		});
		//etykieta.css('opacity',0.6);
		etykieta.click(link);
		target.find(".mapa_odnosniki").append(etykieta);
		
		var top = line.ly * skala + ((line.h*skala) / 2 - 20) + przesuniecie[1];
		var left = line.lx * skala + ((line.w*skala) / 2 - (etykieta.width() / 2 + 5)) + przesuniecie[0];
		
		etykieta.css('top', top).css('left', left);*/
	}
	else
	{
		var area = $('<area/>').attr('shape', 'poly').attr('coords', coords.join(',')).attr('id', 'area_'+line.typ+'_'+line.id).attr('href','');
		area.hover(function(){
			var obszar = line;
			var mapa = target.find('.mapa_hover');
			mapa.canvas();
			draw_area(mapa, obszar, skala, przesuniecie, mapa_styl_hover);
      if(target.find('.mapa_hover:animated').length > 0)mapa.stop(true, true);
      
			mapa.show().fadeOut(0).fadeIn(400);
      if(line.typ == 0)
      {
        woj_hover(line);
      }
      if(line.typ == 1)
      {
        $('#info_box .area_name').html(line.nazwa);
        powiat_hover(line);
      }
		}, function(){
			target.find('.mapa_hover').uncanvas().hide();
      if(line.typ == 0)
      {
        woj_hoverout(line);
      }
      if(line.typ == 1)
      {
        $('#info_box .area_name').html('&nbsp;')
        powiat_hoverout(line);
      }
		});
		area.click(link);
		target.find(".mapowanie[name='"+options.map_name+"']").append(area);
	}
};
var draw_area = function(target, line, scale, offset, options)
{
	var canvas = target;

	var skala = (scale > 0) ? scale : 1;
	var przesuniecie = typeof(offset) == 'object' ? offset : [0,0];

	//canvas.canvas();
	var res = [];
	var start = [(skala * line.origin.x) + przesuniecie[0], (skala * line.origin.y) + przesuniecie[1]];
	$.each(line.coords, function(i){
		if(i != 0)
		{
			//var temp = ['lineTo', [start[0]+(this[0]*skala), start[1]+(this[1]*skala)]];
			var temp = ['lineTo', [(this[0]*skala) + przesuniecie[0], (this[1]*skala) + przesuniecie[1]]];
			res.push(temp);
		}
	});
	
	canvas.polygon(
		start,
		res,
		{ 'fill': options.wypelnienie, 'stroke': (options.obrys != null) ? options.obrys : false, 'close': false},
		{ 
			'strokeStyle'			: 'rgba('+options.obrys_styl.r+','+options.obrys_styl.g+','+options.obrys_styl.b+','+options.obrys_styl.a+')',
			'fillStyle'					: 'rgba('+options.wypelnienie_styl.r+','+options.wypelnienie_styl.g+','+options.wypelnienie_styl.b+','+options.wypelnienie_styl.a+')',
			'lineWidth'					: options.obrys_styl.w
		}
	);
};

$(document).ready(function() {
	(function(){
    $('.mapa, .mapa_top').canvas();
    $('#info_box').hide();
    //$('#mapa_polski').show().fadeTo(0, 0.4);

    $.each(woj, function(i){
      var t = this;
      //alert(i)
      draw_area($('#wojewodztwa .mapa'), this, s, pw, mapa_styl);
      
      //alert(this.alias);
      var link = function(event){
        event.preventDefault();
				extra_labels = [];
				label_petla = 0;
        /*$('#wojewodztwa').fadeTo("slow", 0);
        $('#powiaty').show(0).fadeTo(0, 0, function(){alert('x');$(this).fadeTo("slow", 1)});
        $('#mapa_polski').fadeTo(0, 1);*/
        //$('#wojewodztwa').hide();
        $('#wojewodztwa').css('visibility', 'hidden');
        $('#powiaty').show();
        $('#mapa_polski').show();
        $('#powiaty .mapa').uncanvas().canvas();
        $('#powiaty .mapa_top').uncanvas().canvas();
        $("#powiaty .mapa_etykiety div").remove();
        
				//region ID
				rid = parseInt(t.id);

        var linie = pow[rid];
        $('#powiaty .cien').css('background-image', 'url(fileadmin/templates/gaspol/images/mapa/'+t.alias+'_cien.png)');
        $('#powiaty map').empty();
        $('#info_box .category_name').html('Województwo ' + t.nazwa);
				$('#handlowiec-wojewodztwo').html(t.nazwa);
        $('#info_box .area_name').html('&nbsp;');
        $('#info_box').show();
				woj_click(t);
        $.each(linie, function()
        {
          var t1 = this;
          var link2 = function(event)
          {
            event.preventDefault();
						$('#info_box .area_name').html(t1.nazwa);
						//county ID
						cid = parseInt(t1.id);
            powiat_click(t1);
          }
          
          if(this.miasto == 1)
          {
            draw_area($('#powiaty .mapa_top'), this, s, pp, mapa_styl_2);
          }
          else
          {
            draw_area($('#powiaty .mapa'), this, s, pp, mapa_styl);
          }
          create_link_area($('#powiaty'), this, s, pp, {map_name:'map_2'}, link2);
        });
				//$('#powiaty area, #powiaty a').qtip({style:'dark'});
        //$('#powiaty area').qtip({style:'dark'});
        $('#lista_wojewodztwa').val(rid).change();
        //wypelnij_liste_powiatow(rid);
        //return false;
				drawExtraLabels();
      };
      create_link_area($('#wojewodztwa'), this, s, pw, {map_name:'map_1'}, link);
    });
    $('#mapa_polski').click(powrot_klik);
    //$('#mapa_polski').qtip({style:'dark'});
  })();
});
