var limit_;
var map;
var geocoder;
var city = new Array();
var objFull;
var cc;
var ccc;
var buttonizer = "";
var timer = 0;
var stop_renew;
var osr;
var nums;
var nums_c = 1;
var Ryn = 0;
//$.inArray("Sid", arr);
$(window).on("load",function() {
get_shops();
var options = {
success: function(html)
{
$("#to_hide").hide();
$("#st566").show();
}
};
$("#q").ajaxForm(options);
jQuery("body").on("click", ".location", function(e) {
toggle_view();
c_addr = $(this).attr("alt");
reload_map();
geocodeAddress(geocoder, map, c_addr, stop_renew);
});
jQuery("body").on("click", "#button-dark, #button-light", function(e) {
toggle_view();
});
jQuery("body").on("click", "#red-button", function(e) {
show_mw();
});
jQuery("body").on("click", "#close_mw, #overlay", function(e) {
close_mw();
});
jQuery("body").on("click", "#ssh", function(e) {
show_shops();
});
jQuery('#button-light').click();
jQuery("body").on("click","#blue-button",function(a) {
error = 0;
if (!$("#name_").val()) {
$("#name_").css("border","1px solid red");
error = 1;
}
if ($("#cp").val().length > 12 || $("#cp").val().length < 12 || $("#cp").val().substring(0,3) !== "380") {
$("#cp").css("border","1px solid red");
error = 1;
}
if (!$("#email").val()) {
$("#email").css("border","1px solid red");
error = 1;
}
if (!$("#question").val()) {
$("#question").css("border","1px solid red");
error = 1;
}
if (error === 0) {
$("#q").submit();
}
});
});
function toggle_view() {
if (!buttonizer) {
$("#button-dark").attr("class", "button-light");
$("#button-light").attr("class", "button-dark");
buttonizer = 1;
$( "#text" ).toggle();
$( "#mapi" ).toggle();
//alert(objFull);
if(!objFull)$.post( "/shops/get_shops", {}).done(function( data ) {objFull = jQuery.parseJSON(data);show_shops();});
//show_shops();
} else {
//show_shops();
$("#button-dark").attr("class", "button-dark");
$("#button-light").attr("class", "button-light");
buttonizer = 0;
$( "#text" ).toggle();
$( "#mapi" ).toggle();
show_shops();
}
}
function reload_map() {
stop_renew = Math.random();
osr = stop_renew;
clearTimeout(timer);
initMap();
nums_c = 1;
nums = 1;
$(".loading2").css("display", "none");
$(".load_text").html("");
}
function show_shops() {
reload_map();
i = 0;
curent_obj = {};
n = 1;
jQuery.each(objFull, function() {
if ($("#select_city").val() == objFull[i].city) {
curent_obj[i] = objFull[i].id;
}
i++;
//console.log(i);
});
nums = Object.keys(curent_obj).length;
//console.log(curent_obj);
$("#texting").html("
"+$('#select_city').val()+"
");
jQuery.each(curent_obj, function(indexInArray){
ccc = curent_obj[indexInArray];
cc = objFull[ccc].adress;
cc = cc.replace(/[^ ,.0-9A-Za-zА-Яа-яЁёєЄіІЇїґ]/g, "");
$("#texting").append(""+n+". "+objFull[ccc].name.replace(/[^ ,.0-9A-Za-zА-Яа-яЁёєЄіІЇїґ]/g, "")+"
"+cc+"
"+objFull[ccc].contacts+"
");
geocodeAddress(geocoder, map, $("#select_city").val()+" "+cc, stop_renew);
n++;
});
$("#texting").append("");
}
function get_shops(){
$.ajax({
type: "POST",
url: "/shops/get_shops",
success: function(res) {
objFull = jQuery.parseJSON(res);
i = 0;
arr_len = Object.keys(objFull).length;
do {
//console.log(objFull[i].title);
//$('body').append(objFull[i].id);
city[i] = objFull[i].city;
i++;
} while (i < arr_len);
i = 0;
city = $.unique(city);
arr_len = city.length;
select_str = "";
$("#city_selector").html(select_str);
loadRayons($('#select_city').val());
$( "#select_city" ).change(function() {
loadRayons($(this).val());
});
//alert(city.length);
//alert($.unique(city).length);
}
});
}
function loadRayons(load_city){
//if(load_city=='Київ'){
$.post( "/shops/get_rayons", {city:load_city}).done( function( data ) {
$( "#rayons_selector" ).html( data );
$( "#rayon_select" ).change(function() {
if($(this).val()!=0){$.post( "/shops/get_rayons_json", {city:load_city,rayon:$(this).val()}).done(function( data ) {objFull = jQuery.parseJSON(data);});
loadBrends(load_city,$(this).val());}
else {$.post( "/shops/get_shops", {}).done(function( data ) {objFull = jQuery.parseJSON(data);});}
});
});
//}else {$( "#rayons_selector" ).html( '' );$.post( "/shops/get_shops", {}).done(function( data ) {objFull = jQuery.parseJSON(data);});}
$.post( "/shops/get_shops", {}).done(function( data ) {objFull = jQuery.parseJSON(data);});
}
function loadBrends(load_city,load_rayon){
//if(load_city=='Київ'){
$.post( "/shops/get_brends", {city:load_rayon}).done( function( data ) {
$( "#brends_selector" ).html( data );
$( "#brends_select" ).change(function() {
if($(this).val())$.post( "/shops/get_brends_json", {city:load_city,rayon:load_rayon,brendID:$(this).val()}).done(function( data ) {objFull = jQuery.parseJSON(data);});
else $.post( "/shops/get_rayons", {city:load_city}).done(function( data ) {objFull = jQuery.parseJSON(data);});
});
});
//}else {$( "#rayons_selector" ).html( '' );$.post( "/shops/get_shops", {}).done(function( data ) {objFull = jQuery.parseJSON(data);});}
$.post( "/shops/get_rayons", {city:load_city}).done(function( data ) {objFull = jQuery.parseJSON(data);});
}
function close_mw() {
$("#overlay").css({"display": "none"});
$("#modal_form").css({"display": "none"});
}
function show_mw() {
$("#overlay").css({"display": "block"});
$("#modal_form").css({"display": "block"});
}
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
zoom: 6,
center: {lat: 48.8967234, lng: 31.0254797}
});
geocoder = new google.maps.Geocoder();
//alert(map);
}
function geocodeAddress(geocoder, resultsMap, address, sr) {
if (sr === osr) {
geocoder.geocode({'address': address}, function(results, status) {
console.log(nums+" "+nums_c);
if (nums_c < nums) {
$(".loading2").css("display", "inline-block");
$(".load_text").html(nums_c+" із "+nums);
} else {
$(".loading2").css("display", "none");
$(".load_text").html("");
}
if (nums-1 === nums_c){
$(".loading2").css("display", "none");
$(".load_text").html("");
}
if (status === google.maps.GeocoderStatus.OK) {
resultsMap.setCenter(results[0].geometry.location);
var marker = new google.maps.Marker({
map: resultsMap,
center: results[0].geometry.location,
position: results[0].geometry.location,
title: address
});
resultsMap.setZoom(11);
nums_c++;
console.log(address+" -- OK");
} else {
if (status == google.maps.GeocoderStatus.OVER_QUERY_LIMIT) {
timer = setTimeout( function () {
geocodeAddress(geocoder, map, address, sr);
}, 4000);
//alert('Geocode was not successful for the following reason: ' + status);
} else {
console.log(address+" -- NO");
nums_c++;
}
}
});
}
}