var GeoIP=new Class({map:null,mAjax:null,mCity:null,GetLocalization:function(){this.mCity=this.getCityFromCookie();if(false!=this.mCity){return null}if(navigator.geolocation){navigator.geolocation.getCurrentPosition(this.onSuccess.bind(this),this.onError,{maximumAge:0,timeout:20000,enableHighAccuracy:true});return true}else{console.log("Lokalizacja GeoIP nie jest wspierana przez przegladarke internetowa.")}},onSuccess:function(a){document.getElement("#coverDrugStoresList").setStyle("display","block");this.getNearestCity(a.coords.latitude,a.coords.longitude);return true},onError:function(a){return null},getCityName:function(){return this.mCity.city},getNearestCity:function(a,b){if(!this.mAjax){this.mAjax=new Dejax()}this.mAjax.newRequest({url:"/ajax/GeoIP/GetNearestCity/","eval":true,evalData:["content"],mode:"queue",data:{latitude:a,longitude:b},onComplete:function(c){this.mCity=c;this.saveCityInCookie(c.city);this.getNearestDrugStores();this.getNearestDoctors();this.getNearestObjects()}.bind(this)})},getNearestDrugStores:function(){if(null==this.mCity){document.getElement("#coverDrugStoresList").setStyle("display","none");return null}this.mAjax.newRequest({url:"/ajax/afDrugStores/GetNearestDrugStores/","eval":true,evalData:["content"],mode:"free",data:{city:this.mCity.city},onComplete:this.insertDrugStores.bind(this)});return true},getNearestDoctors:function(){if(null==this.mCity){document.getElement("#coverDoctorsList").setStyle("display","none");return null}var a=new Dejax();a.newRequest({url:"/ajax/afDoctors/GetToList/","eval":true,evalData:["content"],mode:"free",data:{city:this.mCity.city,pLimit:4},onComplete:this.insertDoctors.bind(this)});return true},getNearestObjects:function(){if(null==this.mCity){document.getElement("#coverObjectsList").setStyle("display","none");return null}var a=new Dejax();a.newRequest({url:"/ajax/afMedicalObjects/GetToList/","eval":true,evalData:["content"],mode:"free",data:{city:this.mCity.city,pLimit:4},onComplete:this.insertObjects.bind(this)});return true},insertDrugStores:function(b){if(1>b.length){return null}var a=0;var c=new Hash(document.getElements(".stores-list li"));this.mAjax.newRequest({url:"/ajax/afDrugStores/GetCooperatedStoresCount/","eval":true,evalData:["content"],mode:"queue",data:{},onComplete:function(d){if(0!=d){document.getElement("h2.drug-stores").setHTML("Najbliższe apteki XXI wieku")}if(this.mCity.city){document.getElement("h2.drug-stores").setHTML("Apteki w "+this.mCity.city)}}.bind(this)});c.each(function(d){if(b[a]){if(null==b[a]["city_name"]){b[a]["city_name"]=b[a]["name"]}d.getElement("div p strong").empty();d.getElement("div p").setHTML("<strong>"+b[a]["name"]+"</strong><br />"+b[a]["city_name"]+" "+b[a]["street"]);d.getElement("div a.more").setProperty("href",b[a]["url"]);if(null!=b[a]["image"]){d.getElement("div a").setStyle("background-image",'url("'+b[a]["image"]+'")');d.getElement("div a").setProperty("href",b[a]["url"])}else{d.getElement("div a").setStyle("background-image",'url("/p/brak_zdjecia_1.jpg")')}a=a+1;return true}},this);document.getElement("#coverDrugStoresList").setStyle("display","none");return true},insertDoctors:function(b){if(1>b.length){return null}if(null!=this.mCity){document.getElement("h2.doctors").setHTML("Lekarze w "+this.mCity.city)}if(null!=b){var a=0;var c=new Hash(document.getElements(".box-doctors-list li"));c.each(function(d){if(null!=b[a]){if(null==b[a]["city_name"]){b[a]["city_name"]=b[a]["name"]}d.getElement("div p strong").empty();d.getElement("div p").setHTML("<strong>"+b[a]["firstname"]+" "+b[a]["lastname"]+"</strong><br />"+b[a]["city_name"]+" "+b[a]["street"]);d.getElement("div a.more").setProperty("href",b[a]["url"]);if(null!=b[a]["image_small"]){d.getElement("div a").setStyle("background-image",'url("'+b[a]["image_small"]+'")')}else{d.getElement("div a").setStyle("background-image",'url("/p/brak_zdjecia_1.jpg")')}d.getElement("div a").setProperty("href",b[a]["url"])}a=a+1;return true},this)}document.getElement("#coverDoctorsList").setStyle("display","none");return true},insertObjects:function(b){if(1>b.length){return null}if(null!=this.mCity){document.getElement("h2.medical-objects").setHTML("Szpitale i gabinety w "+this.mCity.city)}var c=new Hash(document.getElements(".box-objects-list li"));var a=0;c.each(function(d){if(null!=b[a]){d.getElement("div p strong").empty();d.getElement("div p").setHTML("<strong>"+b[a]["name"]+"</strong><br />"+b[a]["city_name"]+" "+b[a]["street"]);d.getElement("div a.more").setProperty("href",b[a]["url"]);if(null!=b[a]["image"]){d.getElement("div a").setStyle("background-image",'url("'+b[a]["image"]+'")')}else{d.getElement("div a").setStyle("background-image",'url("/p/brak_zdjecia_1.jpg")')}d.getElement("div a").setProperty("href",b[a]["url"])}a=a+1;return true},this);document.getElement("#coverObjectsList").setStyle("display","none")},saveCityInCookie:function(a){if(null==a){return null}console.log(a+" saved as user city.");Cookie.set("lekomaniak_user_city",a)},getCityFromCookie:function(){return Cookie.get("lekomaniak_user_city")}});
