var __n = 5; //nic
var __r = 7; //regiony
var __c = 10;//miasta
var __o = 17;//obiekty
var pgs = 7;
var ssr=0;
var ssr=new Array(m3);for(var i=0;i<m3;i++)ssr[i]=0;
var ssc=new Array(m2);for(var i=0;i<m2;i++)ssc[i]=0;
var sso=new Array(m1);for(var i=0;i<m1;i++)sso[i]=0;
var aktzoom;
var lc=new Array(2);
lc[0]=8;lc[1]=16;
function load(){
 if (GBrowserIsCompatible()){

  Icon1.image = "/gfx/geo/geo_aso.png";
  Icon1.shadow = "/gfx/geo/geo_shadow.png";
  Icon1.iconSize = new GSize(12, 20);
  Icon1.shadowSize = new GSize(22, 20);
  Icon1.iconAnchor = new GPoint(6, 20);
  Icon1.infoWindowAnchor = new GPoint(5, 1);
	
  Icon2.image = "/gfx/geo/geo_war.png";
  Icon2.shadow = "/gfx/geo/geo_shadow.png";
  Icon2.iconSize = new GSize(12, 20);
  Icon2.shadowSize = new GSize(22, 20);
  Icon2.iconAnchor = new GPoint(6, 20);
  Icon2.infoWindowAnchor = new GPoint(5, 1);

  Icon3.image = "/gfx/geo/geo_hotel.png";
  Icon3.shadow = "/gfx/geo/geo_shadow.png";
  Icon3.iconSize = new GSize(12, 20);
  Icon3.shadowSize = new GSize(22, 20);
  Icon3.iconAnchor = new GPoint(6, 20);
  Icon3.infoWindowAnchor = new GPoint(5, 1);

  Icon4.image = "/gfx/geo/geo_lpg.png";
  Icon4.shadow = "/gfx/geo/geo_shadow.png";
  Icon4.iconSize = new GSize(12, 20);
  Icon4.shadowSize = new GSize(22, 20);
  Icon4.iconAnchor = new GPoint(6, 20);
  Icon4.infoWindowAnchor = new GPoint(5, 1);
/*
  Icon5.image = "http://agnes.hammerdeals.pl/gfx/geo/";
  Icon5.shadow = "/gfx/geo/geo_shadow.png";
  Icon5.iconSize = new GSize(12, 20);
  Icon5.shadowSize = new GSize(22, 20);
  Icon5.iconAnchor = new GPoint(6, 20);
  Icon5.infoWindowAnchor = new GPoint(5, 1);
*/

  map = new GMap2(document.getElementById("map"));
  map.setCenter(new GLatLng(x, y));
//  map.enableScrollWheelZoom();
  map.addControl(new GLargeMapControl());
  map.addControl(new GMapTypeControl());
  map.addControl(new GOverviewMapControl());
  map.enableContinuousZoom();
  geocoder = new GClientGeocoder();
//  mgr = new MarkerManager(map);
  nmarker = new GMarker(new GPoint(1,1),{draggable: true});



  mr=new Array(m3);
  mc=new Array(m2);
  mo=new Array(m1);

  map.setZoom(z);
  aktzoom=z;

  GEvent.addListener(map, "zoomend", function(oz,nz) {
    var bounds = map.getBounds();
    p1 = bounds.getSouthWest();
    p2 = bounds.getNorthEast();
    if(nz>=15 && isDetails==0) document.getElementById("adddiv").style.display = "";
    else document.getElementById("adddiv").style.display = "none";
  });

  GEvent.addListener(map, "moveend", function() {
    var bounds = map.getBounds();
    p1 = bounds.getSouthWest();
    p2 = bounds.getNorthEast();
    var point = map.getCenter();
    document.getElementById("addanchor").href = "http://mapa.autocentrum.pl/go/501__Mapa_kierowcow_-_dodaj_punkt.html?x="+point.lat()+"&y="+point.lng()+"&z="+map.getZoom();
    aktzoom=map.getZoom();
    manageAll(map.getZoom());
  });
		

		
   //map.setCenter(new GLatLng(<?=$x?>, <?=$y?>), <?=$z?>);
  // setTimeout("sc()",1);
  p1 = map.getBounds().getSouthWest();
  p2 = map.getBounds().getNorthEast();
  manageAll(map.getZoom());
 }
}

function manageAll(zoom){// *** FUNKCJA POKAZUJE LUB UKRYWA MARKERY W ZALEZNOSCI OD POZIOMU *** //
if(zoom>__c) {setTimeout("rr()",1);setTimeout("rc()",1);setTimeout("ro()",1);setTimeout("so()",1);} else
if(zoom>__r) {setTimeout("rr()",1);setTimeout("rc()",1);setTimeout("ro()",1);setTimeout("sc()",1);} else
if(zoom>__n) {setTimeout("rr()",1);setTimeout("rc()",1);setTimeout("ro()",1);setTimeout("sr()",1);}
else {setTimeout("rr()",1);setTimeout("rc()",1);setTimeout("ro()",1);}
}

function sr(){//pokazuje markery regionow
 for(var i=0;i<m3;i++){
  if(ssr[i]==0 && ts[r[i][8]]==1 && aktzoom>__n && aktzoom<=__r &&
     r[i][1].lat()>p1.lat()&&
     r[i][1].lat()<p2.lat()&&
     r[i][1].lng()>p1.lng()&&
     r[i][1].lng()<p2.lng()){
    if(!mr[i]){
      f="Liczba ";
      if(r[i][8]==0)f+="Warsztatów ";else
      if(r[i][8]==1)f+="ASO ";else
      if(r[i][8]==2)f+="Hoteli ";else f+="Obiektów ";
      f+="- woj.: "+gRN(r[i][5])+" - "+r[i][2];
      mr[i]=createTabMarker(r[i][1],f,genTabs(r,i,0),r[i][4]);
    }
    map.addOverlay(mr[i]);
    ssr[i]=1;
    setTimeout("sr()",1);
  }
 }
}
function rr(){//usowanie markerow regionu
 for(var i=0;i<m3;i++){
  if(ssr[i]==1 && ((r[i][1].lat()<p1.lat()||
     r[i][1].lat()>p2.lat()||
     r[i][1].lng()<p1.lng()||
     r[i][1].lng()>p2.lng()) || ts[r[i][8]]==0 || aktzoom<=__n || aktzoom>__r)){
     map.removeOverlay(mr[i]);
     ssr[i]=0;
     setTimeout("rr()",1);
  }
 }
}
function sc(){//pokazuje markery miast
 for(var i=0;i<m2;i++){
  if(ssc[i]==0 && ts[c[i][8]]==1 && aktzoom>__r && aktzoom<=__c &&
     c[i][1].lat()>p1.lat()&&
     c[i][1].lat()<p2.lat()&&
     c[i][1].lng()>p1.lng()&&
     c[i][1].lng()<p2.lng()){
    if(!mc[i]){
      f="Liczba ";
      if(c[i][8]==0)f+="Warsztatów ";else
      if(c[i][8]==1)f+="ASO ";else
      if(c[i][8]==2)f+="Hoteli ";else f+="Obiektów ";
      f+="- miejscowość: "+gCN(c[i][0])+" - "+c[i][2];
      mc[i] = createTabMarker(c[i][1],f,genTabs(c,i,1),c[i][4]);
    }
    map.addOverlay(mc[i]);
    ssc[i]=1;
    setTimeout("sc()",1);
  }
 }
}
function rc(){//usowanie markerow miast
 for(var i=0;i<m2;i++){
  if(ssc[i]==1 && ((c[i][1].lat()<p1.lat()||
     c[i][1].lat()>p2.lat()||
     c[i][1].lng()<p1.lng()||
     c[i][1].lng()>p2.lng()) || ts[c[i][8]]==0 || aktzoom<=__r || aktzoom>__c)){
     map.removeOverlay(mc[i]);
     ssc[i]=0;
     setTimeout("rc()",1);
  }
 }
}

function so(){//pokazywanie i tworzenie markerow obiektow
 for(i=0;i<m1;i++){
  if(sso[i]==0 && ts[a[i][8]]==1 && aktzoom>__c && aktzoom<=__o &&
     a[i][1].lat()>p1.lat()&&
     a[i][1].lat()<p2.lat()&&
     a[i][1].lng()>p1.lng()&&
     a[i][1].lng()<p2.lng()){
    if(!mo[i]){
      f="";
      if(a[i][8]==0)f+="Warsztat: ";else
      if(a[i][8]==1)f+="ASO: ";else
      if(a[i][8]==2)f+="Hotel: ";else
      if(a[i][8]==3)f+="Warsztat LPG: ";else
       f+="Obiekt: ";
      mo[i] = createMarker(a[i][1],f+a[i][2],a[i][0],a[i][8],a[i][4]);
    }
    map.addOverlay(mo[i]);
    sso[i]=1;
    setTimeout("so()",1);
  }
 }

}

function ro(){
 for(var i=0;i<m1;i++){
  if(sso[i]==1 && ((a[i][1].lat()<p1.lat()||
     a[i][1].lat()>p2.lat()||
     a[i][1].lng()<p1.lng()||
     a[i][1].lng()>p2.lng()) || ts[a[i][8]]==0 || aktzoom<=__c || aktzoom>__o)){
     map.removeOverlay(mo[i]);
     sso[i]=0;
     setTimeout("ro()",1);
  }
 }
}

// ******** ZWRACA NAZWE WOJEWODZTWA ********** //
function gRN(n){
for(var i=0;i<rn.length;i++)
if(rn[i][0]==n)return rn[i][1];
return "";
}

// ******** ZWRACA NAZWE MIASTA ********** //
function gCN(n){
for(var i=0;i<cn.length;i++)
if(cn[i][0]==n)return cn[i][1];
return "";
}

// ******** CENTROWANIE MAPY ********** //
function centermap(px, py, pz){
 if(pz==0) pz = map.getZoom();
 aktzoom=pz;
 map.setCenter(new GLatLng(px, py), pz);
}

// ******** TWORZENIE ZWYKLEGO MARKERU ********** //
function createMarker(point,name,id,typ,myicon){
  var marker = new GMarker(point,{title:name, icon:myicon, draggable:false});
  GEvent.addListener(marker, "click", function() {
    if(typ==2) styl="170px";else styl="110px";
    marker.openInfoWindowHtml("<div style=\"width:380px;height:"+styl+"\"><iframe src=\"/scripts/geo/xx_get_geo.php?id="+id+"\" frameBorder=\"0\" name=\"frame2\" id=\"frame2\" MARGINHEIGHT=\"0\" scrolling=\"no\" noresize width=\"380px\" height=\""+styl+"\"></iframe></div>",{maxWidth:380});
//    document.getElementById("datadet").style.width = width;
  });
  return marker;
}

// ******** TWORZENIE MARKERU Z ZAKLADKAMI ********** //
function createTabMarker(point,name,tabs,myicon){
  var marker = new GMarker(point,{title:name, icon:myicon, draggable:false});
  GEvent.addListener(marker, "click", function() {
    marker.openInfoWindowTabsHtml(tabs,{maxWidth:380, selectedTab:0});
//    document.getElementById("datadet").style.width = width;
  });
  return marker;
}

// ******** TWORZENIE ZAKŁADEK ********** //
// p - poziom markerow (woj/miasta)
// tab - tablica markerow do tego poziomu
// nr - numer pola w tej tablicy do którego zrobione będą taby
function genTabs(tab,nr,p){
  var tb=new Array(2);
//  var ids=tab[nr][6];
//  var idtab = new Array();
  var idtab = tab[nr][6].split(',');
  var first = getGEOInfo(idtab[0]);
  if(tab[nr][8]==2){styl="170px";m=lc[1];}
  else{styl="110px";m=lc[0];}
//  var linki = genLinki(nr,1,tab,p);
//  var t = "";
  var tn = "";
  var v=tab[nr][8];
  if(v==0)tn="Warsztaty - ";else
  if(v==1)tn="ASO - ";else
  if(v==2)tn="Hotele - ";
  if(p==0){
    for(var i=0;i<rn.length;i++)if(rn[i][0]==tab[nr][5]){reg=rn[i][1];break;}
    t=tn+"woj. <b>"+reg+"</b>";
   // t+=" <a href=\"javascript:void(0)\" onclick=\"javascript:map.setCenter(r["+nr+"][1],8)\" >przybliż</a>";
  } else
  if(p==1){
    for(var i=0;i<cn.length;i++)if(cn[i][0]==tab[nr][0]){cit=cn[i][1];break;}
    t=tn+"miejscowość: <b>"+cit+"</b>";
  }

  var txt = "";
  txt += "<div id=\"topdet\">"+t+"<br/>Liczba obiektów: <span>"+tab[nr][2]+"</span></div><hr/>";
  txt += "<div id=\"fr1\"><iframe src=\"/scripts/geo/xx_get_geo.php?id="+idtab[0]+"\" frameBorder=\"0\" name=\"frame2\" id=\"frame2\" class=\"frame1\" MARGINHEIGHT=\"0\" scrolling=\"no\" noresize height=\""+styl+"\"></iframe></div><hr/>";
  txt += "<div id=\"linkdet\">"+genLinki(nr,1,tab,p)+"</div>";

  if(p==0){
    var txt2 = "";
//    var cos="cos";
//    var cos = getCityLinki(tab[nr][5],1);
    txt2 += "<div id=\"topdet\">"+t+"<br/>Lista miejscowości (kliknij aby przybliżyć mapę)</div><hr/>";
    txt2 += "<div id=\"datacit2\" style=\"height:"+styl+"\">"+gCL(tab[nr][5],1,20,tab[nr][8])+"</div><br class=\"clearboth\"><hr/>";
    txt2 += "<div id=\"linkdet2\">"+gCP(tab[nr][5],1,20,tab[nr][8])+"</div>";
    tb = [ new GInfoWindowTab("Miasta", txt2), new GInfoWindowTab("Obiekty", txt) ];
  } else {
    tb = [ new GInfoWindowTab("Obiekty", txt) ];
  }
  return tb;
}

// ******** TWORZENIE LISTY LINKOW ********** //
function genLinki(nr,pgnr,tab,typ){
  var l="";
  var t=(typ==0)?"r":"c";
  var idtab = tab[nr][6].split(',');
  var max = idtab.length;
  if(pgnr>max) pgnr=max;
  var b=pgnr-3;if(b<1)b=1;
  var e=b+pgs-1;if(e>max)e=max;
  var b=e-pgs+1;if(b<1)b=1;
/*
  l+="<table><tr><td class=\"fltl\"><a href=\"javascript:void(0)\" onclick=\"javascript:reloadInfo("+nr+",1,"+idtab[0]+","+t+","+typ+")\"><<</a></td>";
  l+="<td class=\"fltl\">";
  if(pgnr-1>0)l+="<a href=\"javascript:void(0)\" onclick=\"javascript:reloadInfo("+nr+","+(pgnr-1)+","+idtab[pgnr-2]+","+t+","+typ+")\"><</a>";
  l+="</td><td>";
  for(var i=b;i<pgnr;i++)l+="<a href=\"javascript:void(0)\" onclick=\"javascript:reloadInfo("+nr+","+i+","+idtab[i-1]+","+t+","+typ+")\">"+i+"</a> ";
  l+="<i>"+pgnr+"</i> ";
  for(var i=pgnr+1;i<=e;i++)l+="<a href=\"javascript:void(0)\" onclick=\"javascript:reloadInfo("+nr+","+i+","+idtab[i-1]+","+t+","+typ+")\">"+i+"</a> ";
  l+="</td><td class=\"fltr\">";
  if(pgnr+1<=max)l+="<a href=\"javascript:void(0)\" onclick=\"javascript:reloadInfo("+nr+","+(pgnr+1)+","+idtab[pgnr]+","+t+","+typ+")\">></a>";
  l+="</td><td  class=\"fltr\"><a href=\"javascript:void(0)\" onclick=\"javascript:reloadInfo("+nr+","+max+","+idtab[max-1]+","+t+","+typ+")\">>></a></td></tr></table>";
*/
  l+="<div class=\"pag_1\"><a class=\"lnka1\" href=\"javascript:void(0)\" onclick=\"javascript:reloadInfo("+nr+",1,"+idtab[0]+","+t+","+typ+")\"><<</a><a></a>";
  if(pgnr-1>0)l+="<a class=\"lnka1\" href=\"javascript:void(0)\" onclick=\"javascript:reloadInfo("+nr+","+(pgnr-1)+","+idtab[pgnr-2]+","+t+","+typ+")\"><</a><a></a>";
  for(var i=b;i<pgnr;i++)l+="<a href=\"javascript:void(0)\" onclick=\"javascript:reloadInfo("+nr+","+i+","+idtab[i-1]+","+t+","+typ+")\">"+i+"</a>";
  l+="<a class=\"lnka1\" href=\"javascript:void(0)\">"+pgnr+"</a> ";
  for(var i=pgnr+1;i<=e;i++)l+="<a href=\"javascript:void(0)\" onclick=\"javascript:reloadInfo("+nr+","+i+","+idtab[i-1]+","+t+","+typ+")\">"+i+"</a> ";
  if(pgnr+1<=max)l+="<a></a><a class=\"lnka1\" href=\"javascript:void(0)\" onclick=\"javascript:reloadInfo("+nr+","+(pgnr+1)+","+idtab[pgnr]+","+t+","+typ+")\">></a>";
  l+="<a></a><a class=\"lnka1\" href=\"javascript:void(0)\" onclick=\"javascript:reloadInfo("+nr+","+max+","+idtab[max-1]+","+t+","+typ+")\">>></a></div>";
  
	
	return l;
}

// ******** POBIERA INFORMACJE O OBIEKCIE ********** //
function getGEOInfo(id){
  var obj=null;
  for(var i=0;i<m1;i++){
    if(a[i][0]==id){
      obj=a[i];
      break;
    }
  }
  if(obj) return obj[3];
  else return "Wystąpił błąd";
}

/*
// ******** POBIERA SZEROKOŚĆ RAMKI W ZALEŻNIŚCI OD TYPY ********** //
function getWidth(typ){
  if(typ==3) return "380px"; // dla hoteli szersze
  else return "380px";
}
*/

// ******** ZAMIENIA OBIEKTY W CHMURCE ********** //
function reloadInfo(nr,pgnr,id,tab,typ){
  //var info=getGEOInfo(id);
  var l=genLinki(nr,pgnr,tab,typ);
  if(tab[nr][8]==2) styl="170px";else styl="110px";
  document.getElementById("fr1").innerHTML = "<iframe src=\"/scripts/geo/xx_get_geo.php?id="+id+"\" frameBorder=\"0\" name=\"frame2\" id=\"frame2\" class=\"frame1\" MARGINHEIGHT=\"0\" scrolling=\"no\" noresize height=\""+styl+"\"></iframe>";
//  frame2.window.location.href="/scripts/geo/xx_get_geo.php?id="+id;
  document.getElementById("linkdet").innerHTML=l;
}

// ******** GENERUJE SEKCJE Z LINKAMI MIAST ********** //
function gCL(nr,pg,il,t){
  var txt="";
  var p=1;
  if(t==0||t==1) m=lc[0]; else m=lc[1];
  for(var i=0;i<c.length;i++) {
    if(c[i][5]==nr && c[i][8]==t){
      if(p>(pg-1)*m){
        var ca=-1;
        for(var j=0;j<cn.length;j++){
          if(c[i][0]==cn[j][0]){
            ca = j;
            break;
          }
        }
        if(ca>-1){
          tm=c[i][6].split(',');
          var kk="f2("+((c[i][8]==0)?1:0)+","+((c[i][8]==1)?1:0)+","+((c[i][8]==2)?1:0)+");";
          txt += "<b><a class=\"lnk_navy\" href=\"javascript:void(0)\" onclick=\"javascript:"+kk+"centermap(c["+i+"][1].lat(),c["+i+"][1].lng(),12)\">"+cn[ca][1]+" ("+tm.length+") </a></b>";
        }
        if(p>=pg*m)break;
      }
      p++;
    }
  }
//  alert(txt);
  return txt;
}

// ******** STRONICOWANIE DLA SEKCJI Z LINKAMI MIAST ********** //
function gCP(n,pg,il,t){
  var p=0;var l="";
  for(var i=0;i<c.length;i++)if(c[i][5]==n&&c[i][8]==t)p++;
  if(t==0||t==1)m=8;else m=16;
  var np=Math.ceil(p/m);
//if(n==6)alert(p+"  "+t+"  "+np);
  if(np>1){
  var l="";
  var b=pg-4;if(b<1)b=1;
  var e=b+pgs-1;if(e>np)e=np;
  var b=e-pgs+1;if(b<1)b=1;

  l+="<div class=\"pag_1\"><a class=\"lnka1\" href=\"javascript:setPage("+n+",1,20,"+t+")\"><<</a><a></a>";
  if(pg-1>0)l+="<a class=\"lnka1\" href=\"javascript:setPage("+n+","+(pg-1)+",20,"+t+")\" class=\"fltl\"><</a><a></a>";
  for(var i=b;i<pg;i++)l+="<a href=\"javascript:setPage("+n+","+i+",20,"+t+")\">"+i+"</a>";
  l+="<a class=\"lnka1\" href=\"javascript:void(0)\">"+pg+"</a> ";
  for(var i=pg+1;i<=e;i++)l+="<a href=\"javascript:setPage("+n+","+i+",20,"+t+")\">"+i+"</a> ";
  if(pg<np)l+="<a></a><a class=\"lnka1\" href=\"javascript:setPage("+n+","+(pg+1)+",20,"+t+")\" class=\"fltr\">></a>";
  l+="<a></a><a class=\"lnka1\" href=\"javascript:setPage("+n+","+np+",20,"+t+")\" class=\"fltr\">>></a></div>";
/*  
	
	l+="<table><tr><td class=\"fltl\"><a href=\"javascript:setPage("+n+",1,20,"+t+")\"><<</a></td>";
  l+="<td class=\"fltl\">";
  if(pg-1>0)l+="<a href=\"javascript:setPage("+n+","+(pg-1)+",20,"+t+")\" class=\"fltl\"><</a>";
  l+="</td><td>";
  for(var i=b;i<pg;i++)l+="<a href=\"javascript:setPage("+n+","+i+",20,"+t+")\">"+i+"</a> ";
  l+="<i>"+pg+"</i> ";
  for(var i=pg+1;i<=e;i++)l+="<a href=\"javascript:setPage("+n+","+i+",20,"+t+")\">"+i+"</a> ";
  l+="</td><td class=\"fltr\">";
  if(pg<np)l+="<a href=\"javascript:setPage("+n+","+(pg+1)+",20,"+t+")\" class=\"fltr\">></a>";
  l+="</td><td class=\"fltr\"><a href=\"javascript:setPage("+n+","+np+",20,"+t+")\" class=\"fltr\">>></a></td></tr></table>";
*/	
	
  }
  return l;
}

function setPage(n,i,p,t){
document.getElementById("datacit2").innerHTML = gCL(n,i,p,t);
document.getElementById("linkdet2").innerHTML = gCP(n,i,p,t);
}

function filla(o,z){
 var x=map.getCenter().lat();
 var y=map.getCenter().lng();
 var t=o.href.split('?');
 var s=t[1].split('&');
 o.href=t[0]+"?"+s[0]+"&p="+z+"&x="+x+"&y="+y;
 setFrameHeight(700);
}
function closedet(xx,yy,zz){
 centermap(xx,yy,zz);
 document.getElementById("frame1").style.height=0;
}






        /*

function showText(){
 var pkt = map.getCenter();
 var html = "Zbliż mapę do miejsca w którym<br/>chcesz obejrzeć punkty,<br/>albo kliknij <a href=\"javascript:void(0)\" onclick=\"javascript:setTimeout('loadMarkers3()',1);map.closeInfoWindow();\">tutaj</a> aby zobaczyć <br/>wszystkie punkty teraz.";
 map.openInfoWindowHtml(pkt,html);
}

// ******** WCZYTYWANIE MARKERÓW ********** //
function loadMarkers3(){
 lbegin = 1;
 var ten = 0;
 for(i=0;i<markers.length;i++){
  if(markers[i][1].getPoint().lat() < p2.lat() &&
     markers[i][1].getPoint().lat() > p1.lat() &&
	 markers[i][1].getPoint().lng() < p2.lng() &&
	 markers[i][1].getPoint().lng() > p1.lng() && loaded[i] == 0){
   ten = i+1;
   break;
  }
 }
 if(ten>0){
  $ten--;
  min = 17;
  max = 5;
  switch(markers[ten][9]){
   case 1: min=17; max=10; break;
   case 2: min=9; max=7; break;
   case 3: min=6; max=5; break;
   default: min=17; max=5;
  }
//  var mark = createMarker(markers[ten][1],);
 // mgr.addMarker(marktab[ten],7);

  counter++;
  pp = (counter/max)*100;
  document.getElementById("pbar").style.width=pp+"%";
  setTimeout("loadMarkers2()",1);
 }
}
      */






