﻿$(function() {
 var province = {
  z: "zachodniopomorskie",
  g: "pomorskie",
  n: "warmińsko-mazurskie",
  b: "podlaskie",
  f: "lubuskie",
  p: "wielkopolskie",
  c: "kujawsko-pomorskie",
  e: "łódzkie",
  w: "mazowieckie",
  l: "lubelskie",
  d: "dolnośląskie",
  o: "opolskie",
  s: "śląskie",
  k: "małopolskie",
  t: "świętokrzyskie",
  r: "podkarpackie"
 };
 var dealers = {};
 var markers = [];
 
 var atPage = 6;
 
 var curBrand, curProv;
 if(getHash('brand') != null) {
  $('#brandFilter').val(getHash('brand'));
 }
 if(getHash('province') != null) {
  $('#provinceFilter').val(getHash('province'));
 }
 function init() {
   if (GBrowserIsCompatible()) {
      var map = new GMap2(document.getElementById("gmap"));
   map.setCenter(new GLatLng(52.258744,19.04663), 6);
   map.setUIToDefault();
   map.disableScrollWheelZoom();
   var loadList = function() {
     $('#dealers ul.pager').remove();
     setHash('page',1);
      $('#dealers div.list').empty().append('<ul class="deal"></ul>');
    
    curBrand = $('#brandFilter').val();
    curProv = $('#provinceFilter').val();
      
    var br = 0;
     $.each(dealers,function() {
     if(curBrand != '-') {
       if(this.brand != curBrand) return true;
     }
     if(curProv != '-') {
       if(this.prov.toLowerCase() != province[curProv]) return true;
     }
     var str = '<li><h5>'+this.name+'</h5><p>'+this.addr+'</p>';
     if(this.www.length > 0) str += '<p><a class="blank" href="http://'+this.www+'">'+this.www+'</a></p>';
     str += '<div class="descr">';
     if(this.tel.length > 0) str += '<p>tel. '+this.tel+'</p>';
     if(this.fax.length > 0) str += '<p>fax. '+this.fax+'</p>';
     str += '</div></li>';
     br++;
     if(br%2 == 0) {
       str += '<li class="clear"></li>';
     }
     
     $('#dealers div.list ul.deal').append(str);
    });
    
      $('#dealers div.list ul.deal').pager({ atPage: atPage+3, afterChange: loadMarkers, onTop: true });
      loadMarkers();
   };
   
   var loadMarkers = function(brand,prov) {
   
     $.each(markers,function() {
      map.removeOverlay(this);
    });
    markers = [];
    
    var page = 0;
    var pageHash = getHash('page');
    if(pageHash != null) {
      page = parseInt(pageHash)-1;
  }
    if((page < 0) || (page >= Math.ceil(dealers.length/atPage))) {
      page = 0;
    }
    var arr = [];
      $.each(dealers,function() {
        if(curBrand != '-') {
       if(this.brand != curBrand) return true;
     }
     if(curProv != '-') {
       if(this.prov.toLowerCase() != province[curProv]) return true;
     }
     arr[arr.length] = this;
    });
    for(var i=0;i<atPage;i++) {
      var d = arr[page*atPage+i];
      if(d == null) break;
          var geo = d.geo.split(",");
         var p = new GLatLng(parseFloat(geo[0]),parseFloat(geo[1]));
       var m = new GMarker(p);
       markers[markers.length] = m;
     map.addOverlay(m);
    }
    
   };
   
   loadList();
   
   $('#brandFilter').change(function() {
     setHash('brand',$(this).val());
     loadList();
   });
   
   $('#provinceFilter').change(function() {
     setHash('province',$(this).val());
     loadList();
   });
   
   $('#dealers div.intro').remove();
   $('#dealers div.content').removeClass('hidden');
   
  }
 }
 
 $('#dealers').ajaxSubmit({
 type: 'post',
 dataType: 'json',
 url: '/js/dealers.json',
 success: function(re,st) {
   dealers = re.dealers;
   init();
 }, error: function() {
   $('#dealers div.intro').html('<p>Wystąpiły problemy techniczne, prosimy spróbować później');
 }
 });
 
});