var map;
var sh=0.00;
var dol=0.00;
var fp;
var flag=0;
var themarker;
var directions;
var geocoder = null;
var id_firm=0;
var sem1=1;
var sem2=1;
var shir = '0';		   
var dolg = '0';		   
var icon = "";	
var xcompany;
var xst; 
var xoffice; 
var xcat_id;
var xcat_type; 
var xshir;
var xdolg; 
var xmass;
var trans = [];
for (var i = 0x410; i <= 0x44F; i++) trans[i] = i - 0x350; // А-Яа-я
trans[0x401] = 0xA8;    // Ё
trans[0x451] = 0xB8;    // ё


function orderOfCreation(marker,b) { 
    return 281251;	
} 

function trim(str) {
    str = str.replace(/^\s+/, '');
    for (var i = str.length; --i >= 0;) {
        if (/\S/.test(str.charAt(i))) {
            str = str.substring(0, i + 1);
            break;
        }
    }
    return str;
}

function escape_ext(str) {
	var ret = [];
	for (var i = 0; i < str.length; i++) {
		var n = str.charCodeAt(i);
		if (typeof trans[n] != 'undefined') n = trans[n];
		if (n <= 0xFF) ret.push(n);
	}
	return escape(String.fromCharCode.apply(null, ret));
}  

function get_category(id,cattype) {
  var sel = document.getElementById('category');
  GUnload(); 
	for (var i = 0; i < sel.length; i++) { 
	   if (sel.options[i].value==id) sel.options[i].selected = true
	   else sel.options[i].selected = false;
	}
  map_load(document.getElementById('map_search').value,'select','',id,cattype); 
  return false;
}

function filter_off() {
  var sel = document.getElementById('category');
  GUnload(); 
	for (var i = 0; i < sel.length; i++) { 
	   sel.options[i].selected = false;
	}
	sel.options[0].selected = true;
  document.getElementById('map_search').value=''; 
  map_load('','','',-1);
}

function handleErrors(){
	if (directions.getStatus().code == G_GEO_UNKNOWN_ADDRESS) {
	      document.getElementById('route_panel').innerHTML = 'В базе данных google Не найден начальный или конечный адрес. Проверьте, пожалуйста, не ошиблись-ли вы при вводе.';   
	      alert('В базе данных google Не найден начальный или конечный адрес. Проверьте, пожалуйста, не ошиблись-ли вы при вводе.'); 
	} else if (directions.getStatus().code == G_GEO_SERVER_ERROR) {
	     document.getElementById('route_panel').innerHTML = 'Ответ сервера google: Невозможно проложить данный путь';   
	     alert('Ответ сервера google: Невозможно проложить данный путь'); 
	} else if (directions.getStatus().code == G_GEO_MISSING_QUERY) {
	     document.getElementById('route_panel').innerHTML = 'Не введен начальный или конечный адрес. Проверьте, пожалуйста, не ошиблись-ли вы при вводе.';   
	     alert('Не введен начальный или конечный адрес. Проверьте, пожалуйста, не ошиблись-ли вы при вводе.'); 
	} else {
	     document.getElementById('route_panel').innerHTML = 'Ответ сервера google: Невозможно проложить данный путь';  
	     alert('Ответ сервера google: Невозможно проложить данный путь'); 
	}  
}
function handleErrorsR2(){
	if (directions.getStatus().code == G_GEO_UNKNOWN_ADDRESS) {
	      document.getElementById('route_panel').innerHTML = 'Уточните пожалуйста адрес';   
	      alert('Уточните пожалуйста адрес'); 
	document.getElementById('adr').focus();
	} else if (directions.getStatus().code == G_GEO_SERVER_ERROR) {
	     document.getElementById('route_panel').innerHTML = 'Невозможно проложить данный путь';   
	     alert('Невозможно проложить данный путь'); 
	} else if (directions.getStatus().code == G_GEO_MISSING_QUERY) {
	     document.getElementById('route_panel').innerHTML = 'Не введен начальный или конечный адрес. Проверьте, пожалуйста, не ошиблись-ли вы при вводе.';   
	     alert('Не введен начальный или конечный адрес. Проверьте, пожалуйста, не ошиблись-ли вы при вводе.'); 
	} else {
	       document.getElementById('route_panel').innerHTML = 'Уточните пожалуйста адрес';   
	      alert('Уточните пожалуйста адрес'); 
	document.getElementById('adr').focus();
	}  
}

function create_Wind(myUrl) {
	myWin=window.open("", "nsp_su_firm_picture",  "width=700,height=600,Left=200,Top=50,resizable=yes,scrollbars=yes,menubar=no,titlebar=no");
	myWin.document.write("<html><head><title>Изображение</title></head><body><img src='"+myUrl+"' style='height:70px'/></body></html>");
}

function create_html(marker, _arr, kind, nnn) {
	var fpp = marker.getPoint();
	var shir = fpp.lat();
	var dolg = fpp.lng();
	var hstart = "<table style='text-align:left;border:0px;text-color:black;text-size:12px;'><tr>";
	var hend = "</td></tr><tr><td>Проложить маршрут <a href='#' onClick='fill_point(1,"+shir+","+dolg+"); return false;'>отсюда</a> - <a href='#' onClick='fill_point(2,"+shir+","+dolg+"); return false;'>сюда</a></td></tr></table><br/>";
	var rez="";
	for (var i = 0; i < _arr.length; i++) {
		if (kind=='Новость'){
			rez=hstart+"<td><span style='color:black;font-weight:normal;'>Новости "+_arr[i]['date']+
			    "</span> <b style='font-weight:bold;text-decoration:underline;'>" + _arr[i]['title'] + 
			    "</b></td></tr><tr><td><div style='height:200px;overflow:auto;font-size:11px;'>"+_arr[i]['text']+"</div></td></tr><tr><td>&nbsp;</td></tr>"+hend;		   
		} else if (kind=='Объявление') {
			rez=hstart+"<td><b style='font-weight:bold;text-decoration:underline;'>" + _arr[i]['title'] + 
			    "</b></td></tr><tr><td><span style='font-size:11px;'>"+_arr[i]['text']+		   
			    "</td></tr><tr><td><span style='font-color:gray'>Автор:</span> "+_arr[i]['author']+
				" <span style='font-color:gray'>Действует до:</span> "+_arr[i]['expire_date']+hend;		   
		} else if (kind=='Тендер') {
			rez=hstart+"<td>Тендер <b style='font-weight:bold;text-decoration:underline;'>" + _arr[i]['title'] + 
			    "</b></td></tr><tr><td><span style='font-size:11px;'>"+_arr[i]['text']+		   
			    "</td></tr><tr><td><span style='font-color:gray'>Организатор тендера:</span> "+_arr[i]['author']+
				" <span style='font-color:gray'>Срок проведения с</span> "+_arr[i]['start_date']+
				" <span style='font-color:gray'>с</span> "+_arr[i]['end_date']+hend;		   
		} else if (kind=='Авто') {
			rez=hstart+"<td><b style='font-weight:bold;text-decoration:underline;'>" + _arr[i]['title'] + 
			    "</b></td></tr><tr><td><span style='font-size:11px;'>"+_arr[i]['text']+		   
			    "</td></tr><tr><td><span style='font-color:gray'>Автор:</span> "+_arr[i]['author']+
				" <span style='font-color:gray'>Действует до:</span> "+_arr[i]['expire_date']+hend;		   
		} else if (kind=='Лот') {
	        rez=hstart+"<td style='font-weight:bold;'>Лот №</td><td>"+nnn+"</td></tr><tr>"+
			    "<td style='font-weight:bold'>Период</td><td>"+_arr[i]['date']+"</td></tr><tr>"+
				"<td style='font-weight:bold;'>Категория</td><td>"+_arr[i]['category']+"</td></tr><tr>"+
				"<td style='font-weight:bold;'>Наименование</td><td>"+_arr[i]['nazv']+"</td></tr><tr>"+
				"<td style='font-weight:bold;'>Спецификация</td><td>"+((_arr[i]['cpec'] != undefined)?_arr[i]['cpec']:' ')+"</td></tr><tr>"+
				"<td style='font-weight:bold;'>Организация</td><td>"+_arr[i]['firmname']+hend;		   
		}
	}	
	marker.openInfoWindowHtml( rez );
}

function create_obj_html(marker, html, id_fact, address) {
	var fpp = marker.getPoint();
	var shir = fpp.lat();
	var dolg = fpp.lng();
	var hend = "</td></tr></table>";
	var rez="<table style='text-align:left;border:0px;'><tr><td>"+html+"</td></tr><tr><td></td></tr>";
	JsHttpRequest.query('http://www.asphalt.ru/ajax/get_event.php', {'type':'events_count','id':id_fact,'no_cache':1}, 
		function(result4, errors) { 
			if(errors) alert('Ошибка JsHttpRequest (3) ! '+errors);
			if ((result4)&&(result4["answer"])) { 
			    var flag=0;
				for (var i = 0; i < result4["answer"].length; i++) {
					if (parseInt(result4["answer"][i]['cnt'])>0) {
					    if (flag==0) {
						   flag=1;
						   rez = rez + "<tr><td>Связанные с этим местом материалы:</td></tr>";
						}
						rez = rez + "<tr><td><a href='"+result4["answer"][i]['url']+"'>"+result4["answer"][i]['name']+"("+result4['answer'][i]['cnt']+")</a></td></tr>";
					}
				}	
			   
			}
               rez = rez + '<tr><td>Проложить маршрут <a href="#" onClick="fill_point(1,'+shir+','+dolg+',\''+address+'\'); return false;">отсюда</a> - <a href="#" onClick="fill_point(2,'+shir+','+dolg+',\''+address+'\'); return false; ">сюда</a></td></tr>';	        
          // rez = rez + '<tr><td><a href="#" onClick="GUnload();map_load(\'\',\'otbor\',\'\',\''+id_fact+'\',\'\',\'\',\'\',\'\');">Ближайшие объекты</a></td></tr></table><br/>';
	        marker.openInfoWindowHtml( rez );
			
		}, true
	);
    	
}

function createMarker(point1,markerOptions,html,st,id,id_fact, nnn,address) {

    var marker = new GMarker(point1, markerOptions ); 
	var kind = html;         
	
    if ((st != 'object_edit')&&(st != 'office_add')&&(st != 'firm_office')&&(st != 'office_edit')&&(st != 'event_edit')&&(st != 'event_add')&&(st != 'event_view')) {
			   
		if (id>0) {	
			GEvent.addListener( marker, 'click', function() {
					    JsHttpRequest.query('http://www.asphalt.ru/ajax/get_event.php', {'type':kind,'id':id,'no_cache':1}, 
											function(result3, errors) { 
												if(errors) alert('Ошибка JsHttpRequest (3) ! '+errors);
												if ((result3)&&(result3["answer"])) { 
												  create_html(marker, result3["answer"], kind, nnn); 
												} else {
												  marker.openInfoWindowHtml("Данные недоступны!");
												}
											}, true
				        );
				} 
			);
		} else	{
			GEvent.addListener( marker, 'click', function() { create_obj_html(marker, html, id_fact,address); } );
		} 
    }
    return marker;
}

function putMarkers( map, _arr, st, vshir, vdolg, vmass ) {

	var cnt=0;
	var mass=11;
	var points=[];
    sh=0.00;
    dol=0.00;
	if ((vshir==undefined)||(vdolg==undefined)||(vmass==undefined)) {
		for (var i = 0; i < _arr.length; i++) {
		  	if ((_arr[i]['shirota'] != null)&&(_arr[i]['dolgota'] != null)) {
		  	  sh=sh+parseFloat(_arr[i]['shirota']);
		  	  dol=dol+parseFloat(_arr[i]['dolgota']);
		  	  cnt=cnt+1;
		  	  var point = new GLatLng(parseFloat(_arr[i]['shirota']),parseFloat(_arr[i]['dolgota']));
		  	  points.push(point);
		  	}
		}
		if (cnt>0){
		    sh=(sh/cnt);
		  	dol=(dol/cnt);
		  	if (cnt>1) {
		  	  var points2 = points.slice();
		  	  points2.sort(function(p1,p2){return p1.lng()-p2.lng()});
		  	  var west = points2[0].x;
		  	  var east = points2[(cnt-1)].x;
		  	  points2.sort(function(p1,p2){return p1.lat()-p2.lat()});
		  	  var north = points2[(cnt-1)].y;
		  	  var south = points2[0].y;
		  	  var sw = new GLatLng(south,west);
		  	  var ne = new GLatLng(north,east);
		  	  var bounds = new GLatLngBounds(sw,ne);
		  	  var mass = map.getBoundsZoomLevel(bounds);
		  	} else mass=11;
		} else {
		    sh=57;
		  	dol=49.4;
		  	mass=4;
		}
	} else {
	        cnt  = _arr.length;
		    sh   = vshir;
		  	dol  = vdolg;
		  	mass = vmass;
	}
	if ((st != 'route')&&(st != 'route2')) map.setCenter(new GLatLng(parseFloat(sh), parseFloat(dol)), parseInt(mass));
    if (cnt>0) {
	    for (var i = 0; i < _arr.length; i++) { 
	        var thepoint = new GLatLng( parseFloat(_arr[i]['shirota']), parseFloat(_arr[i]['dolgota']) );
            var html = "";
			var id_fact = 0;
            if ((st != 'firm_office')&&(st != 'object_edit')) { 
	            var img = _arr[i]['zaglushka'];
	            var img_big = _arr[i]['zaglushka'];
	            var name = _arr[i]['name'];
	            var address = _arr[i]['address'];
	            var email = _arr[i]['email']; 
	         
	            if (_arr[i]['img_small'] != '') { img = '/i/logos/' + _arr[i]['img_small']; } else { img = ''; }
	            if ((_arr[i]['img_big'] != null)&&(_arr[i]['img_big'] != '')) { img_big = _arr[i]['img_big']; }
                 
				if (img_big != "") {
                  img_big = "onclick='create_Wind(\"/i/logos/"+img_big+"\");'"; 
				}  
				v_href = _arr[i]['url'];
				if (v_href != '') {
					v_href = "  <a href='"+v_href+"'>Подробнее ...</a>";
				} 
				var src1 = "";
				if (img != "") {
				  src1 = "<div style='float:left;margin:8px;margin-left:0px;margin-top:0px;margin-bottom:0px;'><img src='" + img + "' style='height:70px' "+img_big+"/></div>";
				}  
				if (_arr[i]['phone']==undefined) _arr[i]['phone']="";
				if (email==undefined) email="";
                html = src1+"<span nowrap style='font-size:13px;font-weight:bold;color:black;'>" + 
				name + "</span> <br/><br/><span nowrap>" + address + "</span><br/><br/>"+((_arr[i]['phone']=="")?"":("Тел.: "+_arr[i]['phone']+",  ")) + ((email=="")?"":("E-mail: "+email+"<br/><br/>")) + 
				"<span style='float:left;color:blue;text-align:left;'>" + _arr[i]['type_name'] + "."+v_href+"</span>";
                var ttt = name + ", " + address;
			    id_fact = _arr[i]['id_fact'];
			} 
            var my_icon = new GIcon();            
            my_icon.image = '/i/logos/'+_arr[i]['icon'];
            my_icon.iconSize = new GSize(30,30);
            my_icon.iconAnchor = new GPoint(15,15);
            my_icon.infoWindowAnchor = new GPoint(20,7);
            
			ttt = ttt.replace('&quot;', ' ');
			ttt = trim(ttt.replace('&quot;', ' '));
            if ((st=='office_add')||(st=='office_edit')) {
               var markerOptions = { icon: my_icon, title: ttt, draggable: true };
            } else if (st == 'firm_office') {
               var markerOptions = { icon: my_icon };
            } else {
               var markerOptions = { icon: my_icon, title: ttt };
            } 
           
            var marker1 = createMarker(thepoint,markerOptions,html,st,0,id_fact,0,address);
	           
	        map.addOverlay(marker1);
         
            if ((st=='office_add')||(st=='office_edit')||(st=='object_edit')) {
		        if ((st=='office_add')||(st=='office_edit')) {
					document.getElementById('shir').value = point.lat();
					document.getElementById('dol').value = point.lng();
				} else {
					document.getElementById('firm_shir').value = point.lat();
					document.getElementById('firm_dol').value = point.lng();
				}	
		        GEvent.addListener( marker1, "dragend", 
				    function(){
				        fp = marker1.getPoint();
		                if ((st=='office_add')||(st=='office_edit')) {
		                        document.getElementById('shir').value = fp.lat();
		                        document.getElementById('dol').value = fp.lng();
		                } else {
		                        document.getElementById('firm_shir').value = fp.lat();
		                        document.getElementById('firm_dol').value = fp.lng(); 
								if (st=='firm_office') {
									var url = 'http://www.asphalt.ru/ajax/add_firm_marker.php';
			                        JsHttpRequest.query( url, 
			                                          {'id':id_firm,'shirota':fp.lat(),'dolgota':fp.lng(),'action':st,'no_cache':1}, 
			                                          function(result, errors) { 
			                                             if(errors) alert('Ошибка JsHttpRequest!');
			                                          }, true
			                        );	           
								}
		                }	 
			        }
		        );
		        flag=1;
	        }
	    }
    } 
    return cnt;	
}

function putEMarkers( map, _arr, vshir, vdolg, vmass, st, category_type ) {
	var thepoint;
	var cnt=_arr.length;
	var mass=3;
	var points=[];
    sh=0.00;
    dol=0.00;
	var rez=0;
	var nnn='';
	if ((vshir != undefined)&&(vdolg != undefined)) {
		thepoint = new GLatLng( vshir, vdolg );
	} else if (cnt>0) {
		thepoint = new GLatLng( parseFloat(_arr[0]['shirota']), parseFloat(_arr[0]['dolgota']) );
	} 
	if (vmass != undefined) {
		mass = vmass;
	} 
	if ((category_type != undefined)&&(category_type != null)&&(category_type != '')&&(cnt>0)) {
			for (var i = 0; i < _arr.length; i++) {
		  	if ((_arr[i]['shirota'] != null)&&(_arr[i]['dolgota'] != null)) {
		  	  sh=sh+parseFloat(_arr[i]['shirota']);
		  	  dol=dol+parseFloat(_arr[i]['dolgota']);
		  	  var point = new GLatLng(parseFloat(_arr[i]['shirota']),parseFloat(_arr[i]['dolgota']));
		  	  points.push(point);
		  	}
		}
		sh=(sh/cnt);
		dol=(dol/cnt);
		thepoint = new GLatLng(sh,dol);
		if (cnt>1) {
			  var points2 = points.slice();
			  points2.sort(function(p1,p2){return p1.lng()-p2.lng()});
			  var west = points2[0].x;
			  var east = points2[(cnt-1)].x;
			  points2.sort(function(p1,p2){return p1.lat()-p2.lat()});
			  var north = points2[(cnt-1)].y;
			  var south = points2[0].y;
			  var sw = new GLatLng(south,west);
			  var ne = new GLatLng(north,east);
			  var bounds = new GLatLngBounds(sw,ne);
			  var mass = map.getBoundsZoomLevel(bounds);
		} else mass=11;
	
		if ((st != 'route')&&(st != 'route2')) map.setCenter(thepoint, mass );  
	} else {
	
	    if (vmass != undefined) { 
		     mass = vmass;
		}	 
		if ((i==0)&&(sem1==0)&&(cnt>0)&&(st != 'route')&&(st != 'route2')) {  
	
			map.setCenter(thepoint, mass );  
		}
	} 
//Протестить

	for (var i = 0; i < _arr.length; i++) {
	
	    if ((_arr[i]['shirota'] != undefined)&&(_arr[i]['dolgota'] != undefined)&&(_arr[i]['shirota'] != '0')&&(_arr[i]['dolgota'] != '0')&&(_arr[i]['shirota'] != 0)&&(_arr[i]['dolgota'] != 0)&&(_arr[i]['shirota'] != 'null')&&(_arr[i]['dolgota'] != 'null')&&(_arr[i]['shirota'] != '')&&(_arr[i]['dolgota'] != '')) {
	
			var html = "";
			var name = _arr[i]['info'];
	        nnn='';
			if (_arr[i]['title']=='Лот') { name = name.replace('Лот',''); nnn = name; }
			 
			html = _arr[i]['title'];
			var ttt = _arr[i]['title']+": "+name; 
			ttt = ttt.replace('&quot;', ' ');
			ttt = trim(ttt.replace('&quot;', ' '));
			
			var my_icon = new GIcon();            
			my_icon.image = '/i/logos/'+_arr[i]['icon'];
			my_icon.iconSize = new GSize(30,30);
			my_icon.iconAnchor = new GPoint(15,15);
			my_icon.infoWindowAnchor = new GPoint(20,7);
			
			var markerOptions = { icon: my_icon, title: ttt };
			
		    thepoint = new GLatLng( parseFloat(_arr[i]['shirota']), parseFloat(_arr[i]['dolgota']) );
			var marker1 = createMarker(thepoint,markerOptions,html,'events',_arr[i]['id_object_type'],0, nnn,address);

			map.addOverlay(marker1); 
			rez = 1;
		}
	}
	return rez;
}

function putEventMarker( map, sh, dol, icon, id_fact, st ) {
    var zoom1 = 9;
   
    try {
	  zoom1 = map.getZoom(); 
	  if (zoom==0) zoom=9;
	} catch(err) {
	  zoom1 = 9; 
	}
	if ((st != 'route')&&(st != 'route2')&&(!document.getElementById('zoom') )) map.setCenter(new GLatLng(sh,dol), zoom1 );
    var my_icon = new GIcon();            
	my_icon.image = '/i/logos/'+icon;
	my_icon.iconSize = new GSize(30,30);
	my_icon.iconAnchor = new GPoint(15,15);
	my_icon.infoWindowAnchor = new GPoint(20,7);
    var ttt = ' ';	
	if (st != 'event_view') { ttt = ' Добавлено новое '; }
    var marker1 = new GMarker(new GLatLng(sh,dol), { icon: my_icon, title: ttt, zIndexProcess:orderOfCreation} ); 
	if (st != 'event_view') {
	    GEvent.addListener( marker1, 'click', function() 
			{                                    
				map.removeOverlay(marker1);
				document.getElementById('firm_shir').value = '0';
				document.getElementById('firm_dol').value = '0';
				document.getElementById('id_fact').value = '0';
				flag=0;
	        } 
	    );
		document.getElementById('firm_shir').value = sh;
		document.getElementById('firm_dol').value = dol;
		document.getElementById('id_fact').value = id_fact;
    }  
	map.addOverlay(marker1,{zIndexProcess:orderOfCreation});
	flag = 1;         

}

function createObjMarker(point,markerOptions,id_fact,info) {
    var marker = new GMarker(point, markerOptions ); 
	         
    GEvent.addListener( marker, 'click', 
	   function() {                                    
			if (flag==0) {
				if (confirm('Привязать событие к объекту "'+info+'"?')) {
					var shir = point.lat();
					var dolg = point.lng();
					document.getElementById('firm_shir').value = shir;
					document.getElementById('firm_dol').value = dolg;									
					document.getElementById('id_fact').value = id_fact; 
					putEventMarker(map,shir,dolg,officepic,id_fact,'event_edit0');					
					flag = 1;
				}
			}
	   } 
    );
    return marker;
}

function putObjMarkers( map, _arr, st ) {
	var cnt=0;
	var mass=9;
	var points=[];
    sh=0.00;
    dol=0.00;
	for (var i = 0; i < _arr.length; i++) {
		if ((_arr[i]['shirota'] != null)&&(_arr[i]['dolgota'] != null)) {
		  sh=sh+parseFloat(_arr[i]['shirota']);
		  dol=dol+parseFloat(_arr[i]['dolgota']);
		  cnt=cnt+1;
		  var point = new GLatLng(parseFloat(_arr[i]['shirota']),parseFloat(_arr[i]['dolgota']));
		  points.push(point);
		}
	}
	if (cnt>0){
		sh=(sh/cnt);
		dol=(dol/cnt);
		if (cnt>1) {
		  var points2 = points.slice();
		  points2.sort(function(p1,p2){return p1.lng()-p2.lng()});
		  var west = points2[0].x;
		  var east = points2[(cnt-1)].x;
		  points2.sort(function(p1,p2){return p1.lat()-p2.lat()});
		  var north = points2[(cnt-1)].y;
		  var south = points2[0].y;
		  var sw = new GLatLng(south,west);
		  var ne = new GLatLng(north,east);
		  var bounds = new GLatLngBounds(sw,ne);
		  var mass = map.getBoundsZoomLevel(bounds);
		} else mass=9;
	} else {
		sh=57;
		dol=49.4;
		mass=4;
	}
	if ((st != 'route')&&(st != 'route2')) map.setCenter(new GLatLng(sh,dol), mass);
    if (cnt>0) {
	    for (var i = 0; i < _arr.length; i++) { 
	        var thepoint = new GLatLng( parseFloat(_arr[i]['shirota']), parseFloat(_arr[i]['dolgota']) );
            var html = "";
            var my_icon = new GIcon();            
            my_icon.image = '/i/logos/'+_arr[i]['icon'];
            my_icon.iconSize = new GSize(30,30);
            my_icon.iconAnchor = new GPoint(15,15);
            my_icon.infoWindowAnchor = new GPoint(20,7);
			var ttt = _arr[i]['info'];
			ttt = ttt.replace('&quot;', ' ');
			ttt = ttt.replace('&quot;', ' ');
            
            var markerOptions = { icon: my_icon, title: ttt };
			var marker1 = createObjMarker(thepoint,markerOptions,_arr[i]['id_object'],_arr[i]['info'])
           	map.addOverlay(marker1);
	    }
    }  
} 

function put_one_marker_ower(st,company){
	if ((st=='object_edit')||(st=='event_edit')||(st=='event_view')||(company > 0)) {
		var id_fact = 0;	
		try { 
			shir = parseFloat(document.getElementById('firm_shir').value);
			dolg = parseFloat(document.getElementById('firm_dol').value);
			if ((st !='event_view')&&(st != 'object_edit')) {
			try {
				id_fact = document.getElementById('id_fact').value; 
			} catch(err) {
				id_fact = 0;	
			}}
			if (st=='firm_office') {
				icon = document.getElementById('firm_pic').value;				
			} else {
			  icon = officepic;
			}  
			if ((shir != null)&&(shir != "")&&(shir != 0)&&(dolg != null)&&(dolg != "")&&(dolg != 0)&&(icon != null)&&(icon != "")) {
				if ((st != 'firm_office')&&(st != 'object_edit')) { 
					putEventMarker(map,shir,dolg,icon,id_fact,st);					
				} else { 
					var adata= new Array({'shirota':shir, 'dolgota':dolg, 'icon':icon});
					putMarkers(map,adata,st);
				}	
			} else {
				if ((st != 'route')&&(st != 'route2')) map.setCenter(new GLatLng(57,49.4), 4);
			}
		} catch(err) {
			if ((st != 'route')&&(st != 'route2')) map.setCenter(new GLatLng(57,49.4), 4);
		}
	}		
};

function map_load(company, st, office, category_id, category_type, p_shir, p_dolg, p_mass) {
	var from_point =''; 
	var to_point =''; 
	xcompany = company;
	xst = st; 
	xoffice = office; 
	xcat_id = category_id;
	xcat_type = category_type; 
	xshir = p_shir;
	xdolg = p_dolg; 
	xmass = p_mass;
	if (GBrowserIsCompatible()) {
	    if (st != 'firm_office') {
	      map = new GMap2(document.getElementById("asphalt_map"));
		} else {
		    id_firm=company;
	      map = new GMap2(document.getElementById("firm_map"));
		}  
		map.addControl(new GMapTypeControl());
		map.addControl(new GLargeMapControl());
	    if (st != 'event_view') {
			try {
				map.addControl(new GScaleControl());
				map.addControl(new GOverviewMapControl());
			} catch(err) {
			    to_point ='';
			}
		}	
		 
        if (st=='office_add') { flag=0; }         
		
		if ((category_id==null)||(category_id==undefined)||(category_id=='')) category_id=-1;

		if ((st == 'route')||(st == 'route2')) {
            var directionsPanel; 
			    p_shir = undefined;
				p_dolg = undefined;
				p_mass = undefined; 
				category_id = -1;
	            from_point = company;
	            to_point = office;
	            company = '';
	            office  = '';
		}
    if (st=='zav') { 
 		        var url = 'http://www.asphalt.ru/ajax/get_factories.php';
		        JsHttpRequest.query(	url, 
										{'company':company,'st':'zav','office':office,'no_cache':1, 'category':0}, 
										function(result, errors) { 
											if(errors) alert('Ошибка JsHttpRequest!');
											if (result) { 
												putMarkers(map,result["answer"],st); 
												put_one_marker_ower(st,company);
											} else {
												map.setCenter(new GLatLng(57,49.4), 4);
											}
										}, true
	            );	           
			} else	if ((st=='firm_office')||(st=='event_add')||(st=='event_edit')||(st=='event_view')||(st=='object_edit')||(st=='otbor')||(st=='otbor_ads')||(st=='route2')||(st=='nom')) {
		 
		    if ((st=='event_add')||(st=='event_edit')) {
 		        var url = 'http://www.asphalt.ru/ajax/get_firms_markers.php';
		        JsHttpRequest.query(	url, 
										{'company':company,'st':'objects','office':office,'no_cache':1, 'category':0}, 
										function(result, errors) { 
											if(errors) alert('Ошибка JsHttpRequest!');
											if (result) { 
												putObjMarkers(map,result["answer"],st);
												put_one_marker_ower(st,company);
											} else {
												map.setCenter(new GLatLng(57,49.4), 4);
											}
										}, true
	            );	           
			} else put_one_marker_ower(st,company);
			  if ((st=='otbor')||(st=='route2')||(st=='otbor_ads')||(st=='nom')) {
			  if (document.getElementById("route_panel")) document.getElementById("route_panel").innerHTML='';
 		        var url = 'http://www.asphalt.ru/ajax/get_radius.php';
 		      if (st=='otbor_ads')   url = 'http://www.asphalt.ru/ajax/get_ads_radius.php';
 		             if (st=='nom')   url = 'http://www.asphalt.ru/ajax/get_zavodnom.php';
		        JsHttpRequest.query(	url, 
										{'company':company,'st':'otbor','office':office,'no_cache':1, 'category':category_id,'ct':category_type,'shir':p_shir,'dol':p_dolg,'mas':p_mass}, 
										function(result, errors) { 
											if(errors) alert(errors);
											if (result) { 
												putMarkers(map,result["answer"],st);
												put_one_marker_ower(st,company);
											if (p_mass==10)	map.setCenter(new GLatLng(p_shir,p_dolg),10);
										if (p_mass==25)	map.setCenter(new GLatLng(p_shir,p_dolg),9);
										if (p_mass==50)	map.setCenter(new GLatLng(p_shir,p_dolg),8);
										if (p_mass==100) map.setCenter(new GLatLng(p_shir,p_dolg),7);
										if (p_mass==200) map.setCenter(new GLatLng(p_shir,p_dolg),6);
											if (p_mass==500)	map.setCenter(new GLatLng(p_shir,p_dolg),5);
							
											if (p_mass==1000)	map.setCenter(new GLatLng(p_shir,p_dolg),4);
										if (p_mass==2000)	map.setCenter(new GLatLng(p_shir,p_dolg),3);
										if (p_mass==5000)	map.setCenter(new GLatLng(p_shir,p_dolg),2);
							
									
											} else {
												map.setCenter(new GLatLng(57,49.4), 4);
											}
										}, true
	            );	 
	                
			} else put_one_marker_ower(st,company);
			
	    } else if ((st != 'office_add')&&(st != 'firm_office')&&(st != 'object_edit')) {
 		        var url = 'http://www.asphalt.ru/ajax/get_firms_markers.php';
				sem1 = 1;
				sem2 = 1;
//				alert('company='+company+', st='+st+', office='+office+', category='+category_id);
		        JsHttpRequest.query( url, 
		                              {'company':company,'st':st,'office':office,'no_cache':1, 'category': category_id}, 
		                              function(result, errors) { 
		                                if(errors) alert('Ошибка JsHttpRequest (1) ! '+errors);
	                                    if (result) { 
	                                        if (putMarkers(map,result["answer"],st,p_shir,p_dolg,p_mass)==0) {
												sem1 = 0;
											}
	                                    } else {
                                            sem1 = 0;
	                                    }
										if (st != 'office_edit') { 
								
											url = 'http://www.asphalt.ru/ajax/get_firms_markers.php';
											JsHttpRequest.query( url, 
																  {'company':company,'st':((st=='select')?'events_select':'events'),'office':office,'no_cache':1, 'category': category_id,'category_type':category_type}, 
																  function(result2, errors) { 
																 	 if(errors) alert('Ошибка JsHttpRequest (2) ! '+errors);
																	 if ((result2)&&(result2["answer"])) {
																	 
																		if (putEMarkers(map,result2["answer"],p_shir,p_dolg,p_mass,st,category_type)==0) {
																
																			if (sem1 == 0) {
																		
																				if ((st == 'select')&&(company != undefined)&&(company != '')) {
																			
																					if (!geocoder) { geocoder = new GClientGeocoder(); }
																					geocoder.getLatLng( company, 
																						function(point) 
																						{
																							if (!point) {
																								if ((p_shir==undefined)||(p_dolg==undefined)||(p_mass==undefined)) {
																									if ((st != 'route')&&(st != 'route2')) map.setCenter(new GLatLng(57,49.4), 4);	
																								} else {
																							
																									if ((st != 'route')&&(st != 'route2')) map.setCenter(new GLatLng(p_shir,p_dolg),p_mass);	
																								}
																								if (company != "") alert("Адрес не найден!");
																							} else {
																								if ((st != 'route')&&(st != 'route2')) map.setCenter(point, 14);
																							}
																						}
																					);        						
																				} else if ((st != 'route')&&(st != 'route2')){
																				
																					if ((p_shir==undefined)||(p_dolg==undefined)||(p_mass==undefined)) {
																						if ((st != 'route')&&(st != 'route2')) map.setCenter(new GLatLng(57,49.4), 4);	
																					} else {
																				
																						if  ((st != 'route')&&(st != 'route2')) map.setCenter(new GLatLng(p_shir,p_dolg),p_mass);	
																					
																						}
																				}		
																			}
																			
																		}
																	 } else {
																																		

																		if (sem1 == 0) {
																			if (st == 'select') {
																				if (!geocoder) { geocoder = new GClientGeocoder(); }
																				geocoder.getLatLng( company, 
																					function(point) 
																					{
																						if (!point) {
																							if ((p_shir==undefined)||(p_dolg==undefined)||(p_mass==undefined)) {
																					            if ((st != 'route')&&(st != 'route2')) {  
																								    map.setCenter(new GLatLng(57,49.4), 4);	
																								}	
																							} else {
																								if ((st != 'route')&&(st != 'route2')) map.setCenter(new GLatLng(p_shir,p_dolg),p_mass);	
																							}
																							if (company != "") alert("Адрес не найден!");
																						} else {
																							if ((st != 'route')&&(st != 'route2')) map.setCenter(point, 14);
																						}
																					}
																				);        						
																			} else if ((st != 'route')&&(st != 'route2')) {
																				if ((p_shir==undefined)||(p_dolg==undefined)||(p_mass==undefined)) {
																					map.setCenter(new GLatLng(57,49.4), 4);	
																				} else {
																					map.setCenter(new GLatLng(p_shir,p_dolg),p_mass);	
																				}
																			}																		
																		}
																	 }
																  }, true
											); 
										}										
	                                }, true
	            ); 
        
} else { 
               if ((st != 'route')&&(st != 'route2')) map.setCenter(new GLatLng(57,49.4), 4);
        }
        if ((st == 'object_edit')||(st == 'office_add')||(st == 'office_edit')||(st == 'event_edit')||(st == 'event_add')) {
            if (!geocoder) geocoder = new GClientGeocoder();
        }
        map.enableScrollWheelZoom(); 
         
	    if ((st == 'route')||(st == 'route2')) {  
           directionsPanel = document.getElementById("route_panel");
	       directionsPanel.innerHTML="";        
           directions = new GDirections(map, directionsPanel);
          if (st == 'route2') GEvent.addListener(directions, "error", handleErrorsR2); else GEvent.addListener(directions, "error", handleErrors);
           directions.load("from: "+from_point+" to: "+to_point, {'locale': "ru_RU", 'travelMode': G_TRAVEL_MODE_DRIVING});
                  
                 
	       company = '';
	       office  = '';
	    }

	    if ((st == 'object_edit')||(st=='office_add')||(st=='office_edit')||(st=='firm_office')) {
	        GEvent.addListener(map, "click", function(marker,point) {
		            if (marker) {
		                map.removeOverlay(marker);
		                if (st == 'object_edit') {
		                    document.getElementById('firm_shir').value = '0';
		                    document.getElementById('firm_dol').value = '0';
						}		
                        flag=0;
		            } else {
		                if (flag==0) {     
		                      var my_icon = new GIcon();            
		                      if (st=='firm_office') { pic = document.getElementById('firm_pic').value }
							  else { pic = officepic; }
		                      my_icon.image = '/i/logos/'+pic;
		                      my_icon.iconSize = new GSize(30,30);
		                      my_icon.iconAnchor = new GPoint(15,15);
		                      var new_marker = new GMarker(point,{icon: my_icon, title: 'Новый объект', draggable: true});
		                      themarker = new_marker;
		                      map.addOverlay(new_marker);
		                      if (st =='firm_office') {
		 		                var url = 'http://www.asphalt.ru/ajax/add_firm_marker.php';
		                        JsHttpRequest.query( url, {'id':id_firm,'shirota':point.lat(),'dolgota':point.lng(),'no_cache':1}, 
		                                  function(result, errors) { 
		                                     if(errors) alert('Ошибка JsHttpRequest!');
		                                  }, true
		                        );
		                        document.getElementById('firm_shir').value = point.lat();
		                        document.getElementById('firm_dol').value = point.lng();
		                      } else if (st == 'object_edit') {
		                        document.getElementById('firm_shir').value = point.lat();
		                        document.getElementById('firm_dol').value = point.lng();
		                      } else {
		                        document.getElementById('shir').value = point.lat();
		                        document.getElementById('dol').value = point.lng();
		                      }
		                      GEvent.addListener(new_marker,"dragend",function(){
		                            fp = themarker.getPoint();
									var shir = fp.lat();
									var dolg = fp.lng();
		                            if (st =='object_edit') {
		                               document.getElementById('firm_shir').value = shir;
		                               document.getElementById('firm_dol').value = dolg;
		                            } else if (st !='firm_office') {
		                               document.getElementById('shir').value = shir;
		                               document.getElementById('dol').value = dolg;
		                            } else {
		                                document.getElementById('firm_shir').value = shir;
		                                document.getElementById('firm_dol').value = dolg;
		 		                        var url = 'http://www.asphalt.ru/ajax/add_firm_marker.php';
		                                JsHttpRequest.query( url, {'id' : id_firm, 'shirota' : shir, 'dolgota': dolg, 'no_cache' : 1}, 
		                                          function(result, errors) { 
		                                             if(errors) alert('Ошибка JsHttpRequest!');
		                                          }, true
		                                );
		                            }	
		                        }
		                      );
		                      flag=1;
		                } 
		            }
	            }
	        );
	    } else if  ((st=='event_add')||(st=='event_edit')) { 
			GEvent.addListener(map, "click", function(marker,point) {
				if (marker) {
					return false;
				} else {	
					if (flag==0) {
						var shir = point.lat();
						var dolg = point.lng();
						document.getElementById('firm_shir').value = shir;
						document.getElementById('firm_dol').value = dolg;									
						document.getElementById('id_fact').value = '0';
						putEventMarker(map,shir,dolg,officepic,0,st);					
						flag = 1;
					}
				}
			}
			);		
		}
	}
}


function map_load2(company, st, office, category_id,category_type) {
   window.setTimeout(map_load, 5000, company, st, office, category_id, category_type);
}

function link_div() { 
	var body_tag = document.getElementsByTagName("body")[0];
	var child_div = document.getElementById("link_div");
    if (child_div != null) {
		removeElement(1);
	} else {  
		child_div = document.createElement('div'); 
		child_div.setAttribute('id','link_div'); 
		child_div.style.position = "absolute";
		child_div.style.left = "372px";
		child_div.style.top = "229px";
		child_div.style.border = "1px solid black";
		child_div.style.backgroundColor = "white";
		child_div.style.width = "525px";
	    var point = map.getCenter();
	    var zoom = map.getZoom();
        xshir = point.lat();
        xdolg = point.lng(); 
		if (zoom != undefined) {
			xmass = zoom;
		}
		var getparams='';
		if (xcompany != undefined) { 
			getparams=(escape_ext(xcompany));
		}	
		if (xst != undefined) getparams=getparams+'&st='+(escape_ext(xst));
		if (xoffice != undefined) getparams=getparams+'&office='+(escape_ext(xoffice));
		if (xcat_id != undefined) getparams=getparams+'&cat_id='+(escape_ext(xcat_id));
		if (xcat_type != undefined) getparams=getparams+'&cat_type='+(escape_ext(xcat_type));
		if (xshir != undefined) getparams=getparams+'&shir='+xshir;
		if (xdolg != undefined) getparams=getparams+'&dolg='+xdolg;
		if (xmass != undefined) getparams=getparams+'&mass='+xmass;
		child_div.innerHTML = "<div style='border:4px lightblue solid;'><span style='float:left;margin:0px 0px 0px 3px;'>Вставьте ссылку в сообщение эл. почты или чата </span><a onClick='removeElement(1);' style='float:right;'><img src='/i/close_add.gif'/></a><br/><span align='center' style='text-align:center'><input type='text' id='map_link_input_id' value='http://www.asphalt.ru/geo/russia_map/?company="+getparams+"' style='margin:0px 0px 0px 1px;background-color:lightgray;width:515px;'/></span></div>"; 
		body_tag.appendChild(child_div); 
	    document.getElementById("map_link_input_id").select();
	}
}

function submit_email() {
	var email_form = document.forms['mail_send_form'];
	email_form.action = 'mailto:'+email_form.mail_address.value.replace(/ /g,"\xA0");
	email_form.subject.value = email_form.subject.value.replace(/ /g,"\xA0");
	email_form.body.value = email_form.body.value.replace(/ /g,"\xA0");
	email_form.submit();
	removeElement(2);
}

function email_div() {
	var body_tag = document.getElementsByTagName("body")[0];
	var child_div = document.getElementById("email_div");
    if (child_div != null) {
		removeElement(2);
	} else { 
		child_div = document.createElement('div'); 
		child_div.setAttribute('id','email_div'); 
		child_div.style.position = "absolute";
		child_div.style.left = "372px";
		child_div.style.top = "229px";
		child_div.style.border = "1px solid black";
		child_div.style.backgroundColor = "white";
		child_div.style.width = "525px";
	    var point = map.getCenter();
	    var zoom = map.getZoom();
        xshir = point.lat();
        xdolg = point.lng(); 
		if (zoom != undefined) {
			xmass = zoom;
		}
		var getparams='';
		if (xcompany != undefined) { 
			getparams=(escape_ext(xcompany));
		}	
		if (xst != undefined) getparams=getparams+'&st='+(escape_ext(xst));
		if (xoffice != undefined) getparams=getparams+'&office='+(escape_ext(xoffice));
		if (xcat_id != undefined) getparams=getparams+'&cat_id='+(escape_ext(xcat_id));
		if (xcat_type != undefined) getparams=getparams+'&cat_type='+(escape_ext(xcat_type));
		if (xshir != undefined) getparams=getparams+'&shir='+xshir;
		if (xdolg != undefined) getparams=getparams+'&dolg='+xdolg;
		if (xmass != undefined) getparams=getparams+'&mass='+xmass;
		child_div.innerHTML = "<div style='border:4px lightblue solid;'><form name='mail_send_form' enctype='text/plain' action='mailto:name@domen.ru' method='GET'><table style='border:0px;'><tr><td>Отправить ссылку:</td><td><a onClick='removeElement(2);' style='float:right;'><img src='/i/close_add.gif'/></a></td></tr><tr><td colspan=2>Кому <input name='mail_address' type='text' value='' id='mail_id' syle='width:200px;' /><input name='subject' type='hidden' value='Ссылка на карту с сайта www.asphalt.ru' id='subject' /></td></tr><tr><td colspan=2><textarea name='body' id='mail_body_id' style='width:515px;height:150px;'>Отправляю Вам ссылку на Карту с сайта www.asphalt.ru   Ссылка: http://www.asphalt.ru/geo/russia_map/?company="+getparams+"</textarea></td></tr><tr><td style='text-align:center;'><input type='button' value='Отправить' onClick='submit_email();'/></td><td style='text-align:center;'><input type='button' value='Отменить' onClick='removeElement(2);'/></td></tr></table></form></div>"; 
		body_tag.appendChild(child_div); 
	}
}

function removeElement(reg) { 
    var ID = 'link_div';
    if (reg==2) { ID = 'email_div'; }
//	var map_div = document.getElementById("asphalt_map"); 
	var body_tag = document.getElementsByTagName("body")[0];
	var child_div = document.getElementById(ID); 
	body_tag.removeChild(child_div); 
} 

function go_yandex_map(){
	    var point = map.getCenter();
	    var zoom = map.getZoom();
        if (xshir) xshir = point.lat();
        if (xdolg) xdolg = point.lng(); 
		if (zoom != undefined) {
			xmass = zoom;
		}
		var getparams='';
//		if (xcompany != undefined) { 
//			getparams=(escape_ext(xcompany));
//		}	
//		if (xst != undefined) getparams=getparams+'&st='+(escape_ext(xst));
//		if (xoffice != undefined) getparams=getparams+'&office='+(escape_ext(xoffice));
//		if (xcat_id != undefined) getparams=getparams+'&cat_id='+(escape_ext(xcat_id));
//		if (xcat_type != undefined) getparams=getparams+'&cat_type='+(escape_ext(xcat_type));
		if (xshir != undefined) getparams=getparams+'&shir='+xshir;
		if (xdolg != undefined) getparams=getparams+'&dolg='+xdolg;
		if (xmass != undefined) getparams=getparams+'&mass='+xmass;
		location.href = "http://asphalt.ru/geo/map_yandex/?company="+getparams; 
}
function getcoord(address,mass) {

  	if (!geocoder) { geocoder = new GClientGeocoder(); }
																				geocoder.getLatLng( address, 
																					function(point) 
																					{
																		 shirota=point.lat();
dolgota=point.lng();   
																					
						map_load('','otbor','','',document.getElementById('proizv').value, shirota,dolgota,mass);
			drawCircle(point,mass,50);
						getfactories(shirota,dolgota,mass)																
																					}
																				);  

   
 
}
function getcoordads(address,mass) {

  	if (!geocoder) { geocoder = new GClientGeocoder(); }
																				geocoder.getLatLng( address, 
																					function(point) 
																					{
																		 if (point){
																		 shirota=point.lat();
dolgota=point.lng();   
			
			drawCircle(point,mass,50);
			}
																						
																					}
																				);  

   
 
}
var request;
function createRequest() {
	try {
		request = new XMLHttpRequest();
	} catch (trymicrosoft) {
		try {
			request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (othermicrosoft) {
		try {
			request = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (failed) {
			request = false;
		}
		}
	}

	if (!request)
		alert("Error initializing XMLHttpRequest!");
}
function createGRequest() {
	try {
		grequest = new XMLHttpRequest();
	} catch (trymicrosoft) {
		try {
			grequest = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (othermicrosoft) {
		try {
			grequest = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (failed) {
			grequest = false;
		}
		}
	}

	if (!grequest)
		alert("Error initializing XMLHttpRequest!");
}
function getfactories(s,d,mass) {
      
		createRequest();
		var url = "/ajax/get_radius_ajax.php?s="+s+'&d='+d+'&ct='+document.getElementById('proizv').value+'&mass='+mass+'&nnn='+Math.floor(Math.random()*1000000);

	        request.open("GET", url, true);
        request.onreadystatechange =  updatefactories;
        request.send(null);
}
function updatefactories() {

	if (request.readyState == 4) {
	  
	  	
			var xmlDoc = request.responseText;
		
		
			var spisok=xmlDoc.split(";;;");
		var form='<table class="res" cellpadding="0" cellspacing="0"  id="tab1">';
			form+='<tr><th>№</th><th style="text-align:left;">Предприятие</th>';
			form+='<th style="border-right:0px">Расстояние</th><th>Маршрут</th></tr>';
			
			//alert(spisok.length);
			for (i=0;i<spisok.length-1;i++) {
				var a = spisok[i].split("+");
				var j=i+1;
				
				if (j>20){
					n=j%20;
					if (n==1){
						s=((j-n)/20)+1;
						//alert(s);
						form+='</table><table class="res" cellpadding="0" cellspacing="0"  id="tab'+s+'" style="display:none;">';
						form+='<tr><th>№</th><th style="text-align:left;">Предприятие</th>';
						form+='<th >Расстояние</th><th style="border-right:1px solid #FFFFFF">Маршрут</th></tr>';
					}
				}
				if (a[6]==1) form+='<tr  name="m" id="tr'+i+'" ><td>'+j+'</td><td><a href="'+a[1]+'">'+a[0]+'</a></td><td style="border-right:0px; text-align:center"><span >'+Math.round(a[2])+' км<span></td><td><a href="#" id="pr'+i+'" onClick="perekras('+i+');fill_point(3,\''+a[4]+'\',\''+a[5]+'\',\''+a[3]+'\');objrp=this;">Проложить маршрут</a></td></tr>';else
				form+='<tr  name="m" id="tr'+i+'" ><td>'+j+'</td><td><a href="'+a[1]+'">'+a[0]+'</a></td><td style="border-right:0px; text-align:center"><span >'+Math.round(a[2])+' км<span></td><td></td></tr>';
				
			//	alert(form);
			}
			
			//alert(form);
			
			sp=spisok.length-1;
			kol=(sp-(sp%20))/20;
			if (sp%20!=0 && kol!=0){
				kol+=1;
			}
			
			form+='</table>';
			
			if (kol!=0){
				for (i=1;i<=kol;i++){
					form+='<div style="float:left; padding-left:5px; padding-right:5px;"><a id="a_'+i+'" style="cursor:pointer;font-size:12px;" onClick="stran('+i+','+kol+')">'+i+'</a></div>';
				}
			}
			

	
	 		document.getElementById('factories').innerHTML=form;
	 	
   
 }
}
function getcitybyip() {
      
		createRequest();
		var url = "/ajax/get_region.php";
	        request.open("GET", url, true);
        request.onreadystatechange =  updatecity;
        request.send(null);
}
function updatecity() {

	if (request.readyState == 4) {
			var xmlDoc = request.responseText;
	 		document.getElementById('adr').value=xmlDoc; 
 }
}

function perekras(index){
if ((document.getElementById('tr'+index).cells[0].style.backgroundColor=='')||(document.getElementById('tr'+index).cells[0].style.backgroundColor=='#f2f2f4')||(document.getElementById('tr'+index).cells[0].style.backgroundColor=='rgb(242, 242, 244)')) document.getElementById('tr'+index).cells[0].style.background='#ffad82';else document.getElementById('tr'+index).cells[0].style.background='#f2f2f4';
if ((document.getElementById('tr'+index).cells[1].style.backgroundColor=='')||(document.getElementById('tr'+index).cells[1].style.backgroundColor=='#f2f2f4')||(document.getElementById('tr'+index).cells[1].style.backgroundColor=='rgb(242, 242, 244)')) document.getElementById('tr'+index).cells[1].style.background='#ffad82';else document.getElementById('tr'+index).cells[1].style.background='#f2f2f4';
if ((document.getElementById('tr'+index).cells[2].style.backgroundColor=='')||(document.getElementById('tr'+index).cells[2].style.backgroundColor=='#f2f2f4')||(document.getElementById('tr'+index).cells[2].style.backgroundColor=='rgb(242, 242, 244)')) document.getElementById('tr'+index).cells[2].style.background='#ffad82';else document.getElementById('tr'+index).cells[2].style.background='#f2f2f4';
if ((document.getElementById('tr'+index).cells[3].style.backgroundColor=='')||(document.getElementById('tr'+index).cells[3].style.backgroundColor=='#f2f2f4')||(document.getElementById('tr'+index).cells[3].style.backgroundColor=='rgb(242, 242, 244)')) document.getElementById('tr'+index).cells[3].style.background='#ffad82';else document.getElementById('tr'+index).cells[3].style.background='#f2f2f4';

for (i=0;i<100;i++){
if (i!=index){
if (document.getElementById('tr'+i)) document.getElementById('tr'+i).cells[0].style.background='#f2f2f4';
if (document.getElementById('tr'+i)) document.getElementById('tr'+i).cells[1].style.background='#f2f2f4';
if (document.getElementById('tr'+i)) document.getElementById('tr'+i).cells[2].style.background='#f2f2f4';
if (document.getElementById('tr'+i)) document.getElementById('tr'+i).cells[3].style.background='#f2f2f4';

  }
 }
}

function stran(nado,vsego){
	for (i=1;i<=vsego;i++){
		if (i==nado){
			document.getElementById('tab'+i).style.display='';
			document.getElementById('a_'+i).style.textDecoration='none';
		}else{
			document.getElementById('tab'+i).style.display='none';
			document.getElementById('a_'+i).style.textDecoration='underline';
		}
	}
}

function smpanel(){
 		document.getElementById('factories').style.display='none';
	 		document.getElementById('route_panel').style.display='';
}
var bounds = new GLatLngBounds()
function drawCircle(center, radius, nodes, liColor, liWidth, liOpa, fillColor, fillOpa){
  // Esa 2006
  //calculating km/degree
  var latConv = center.distanceFrom(new GLatLng(center.lat()+0.1, center.lng()))/100;
  var lngConv = center.distanceFrom(new GLatLng(center.lat(), center.lng()+0.1))/100;

  //Loop 
  var points = [];
  var step = parseInt(360/nodes)||10;
  for(var i=0; i<=360; i+=step)
  {
    var pint = new GLatLng(center.lat() + (radius/latConv * Math.cos(i * Math.PI/180)), 
      center.lng() + 
      (radius/lngConv * Math.sin(i * Math.PI/180)));
    points.push(pint);
    bounds.extend(pint); //this is for fit function
  }
  points.push(points[0]); // Closes the circle, thanks Martin
  fillColor = fillColor||liColor||"#0055ff";
  liWidth = liWidth||2;
  var poly = new GPolygon(points,liColor,liWidth,liOpa,fillColor,fillOpa);
  map.addOverlay(poly);
}

function getElementPosition(elemId){
	var elem = typeof elemId == 'object' ? elemId : document.getElementById(elemId);
	var w = elem.offsetWidth;
	var h = elem.offsetHeight;
	var l = 0;
	var t = 0;
	while (elem){
		l += elem.offsetLeft;
		t += elem.offsetTop;
		elem = elem.offsetParent;
	}
	return {"left":l, "top":t, "width": w, "height":h};
}

function googlezapros(){
createGRequest();
var adrval=encodeURIComponent(document.getElementById('adr').value);
var url='/ajax/get_gxml.php?param='+adrval;
grequest.open("GET", url, true);
grequest.onreadystatechange =  updategz;
grequest.send(null)
}
function updategz(){
 if (grequest.readyState ==4){
	   
	   		var txt = grequest.responseText;
	var id='divsv';   		
	document.getElementById('divsv').style.display='';
       var spisok=txt.split(';;;');
        // var b = getElementPosition('adr'); 
var form='<table cellspacing="0" cellpadding="0" >'
       if (spisok.length>1) form+='<tr><td><b>Возможно вы искали:</b></td></tr>';
       for (i=0;i<spisok.length-1;i++){
a=spisok[i];
 	form+='<tr   style="background:#FFFFFF;cursor:pointer"   onmouseover=" this.style.background=\'#ffad82\'; this.style.color=\'#FFFFFF\';" onmouseout="this.style.background=\'#ffffff\'; this.style.color=\'#000000\';" onClick="getElementById(\'divsv\').style.display=\'none\';getElementById(\'adr\').value=\''+a+'\';getcoord(getElementById(\'adr\').value,getElementById(\'mas\').value);" ><td style="font-size:14px;width:300px;height:20px;text-decoration:underline">'+a+'</td>';
					


            }
     form+='</table>';      /*        
         document.getElementById(id).style.left=b.left+'px';
			document.getElementById(id).style.top=b.top+b.height-1+'px';
			document.getElementById(id).style.width=b.width-2+'px';
			document.getElementById(id).style.borderTop='0px';
		
	
			//alert(res);
			document.getElementById(id).style.position = 'absolute';
			document.getElementById(id).style.display='';
			document.getElementById(id).style.zIndex="110";
		    document.getElementById(id).background='#FFFFFF';
			*/
			document.getElementById(id).innerHTML = form;
	   		}
}
var objrp;
function funcrp(){
var fff=document.getElementById('route_panel').innerHTML.split('км')[0].split('Route.summaryHtml">')[1];
if (fff!=undefined) objrp.innerHTML=fff+'км';
}
function fill_point(reg,shir,dolg,address) {
    var ID = 'otkuda';
    if (reg==2) { ID = 'kuda'; }
     var inp = document.getElementById(ID); 
    var reversegeocoder = new GReverseGeocoder(map);
     GEvent.addListener( reversegeocoder, "load", function(placemark) { if (placemark.address != "") { inp.value = placemark.address;
    if (reg==3){ map_load(document.getElementById('adr').value,'route2',inp.value);
    
       
     }} else { inp.value = address;if (reg==3) map_load(document.getElementById('adr').value,'route2',inp.value); } } );
     if (reg==3){ setTimeout("funcrp()",10000); }
    GEvent.addListener(reversegeocoder, "error", function() { inp.value = address;if (reg==3) map_load(document.getElementById('adr').value,'route2',inp.value); } );
    
     // --------------------- запускаем обратное геокодирование: 
    //reversegeocoder.setBaseCountry("Российская Федерация");
     reversegeocoder.reverseGeocode( new GLatLng(parseFloat(shir),parseFloat(dolg)) );
  
     
}
function find_address2(address) {
  if (geocoder) {

	geocoder.getLatLng( address, function(point) {
            if (!point) {
              alert(address + " Не найден!");
            } else {
				map.setCenter(point, 14);
	            if (flag==0) {
				    var shir = point.lat();
					var dolg = point.lng();
					document.getElementById('firm_shir').value = shir;
					document.getElementById('firm_dol').value = dolg;									
					document.getElementById('id_fact').value = '0';
					putEventMarker(map,shir,dolg,officepic,0,'event_add');					
					flag = 1;
				}
            }
        }
    );        
    	
  }
}
function find_address3(address) {
  if (geocoder) {

	geocoder.getLatLng( address, function(point) {
            if (!point) {
              alert(address + " Не найден!");
            } else {
            if (document.getElementById('rad').value==20) var zoomparam=9;
            if (document.getElementById('rad').value==50) var zoomparam=8;
            if (document.getElementById('rad').value==100) var zoomparam=7;
            if (document.getElementById('rad').value==200) var zoomparam=6;
             if (document.getElementById('rad').value==500) var zoomparam=5;
                         if (document.getElementById('rad').value==1500) var zoomparam=3;
                                     if (document.getElementById('rad').value>1500) var zoomparam=2;
                                     if (document.getElementById('rad').value==0) zoomparam=map.getZoom();
				map.setCenter(point, zoomparam);
	            if (flag==0) {
				    var shir = point.lat();
					var dolg = point.lng();
					document.getElementById('firm_shir').value = shir;
					document.getElementById('firm_dol').value = dolg;									
					document.getElementById('id_fact').value = '0';
					putEventMarker(map,shir,dolg,officepic,0,'event_add');					
					flag = 1;
				}
            }
        }
    );        
    	
  }
}

function find_address(address) {
  if (geocoder) {
    if (flag==1) {
		  if (themarker) {
		     map.removeOverlay(themarker);
         flag=0; 
      }   
    }
    if (flag==0) {
      geocoder.getLatLng( address, function(point) {
            if (!point) {
              alert(address + " Не найден!");
            } else {
              map.setCenter(point, 14);
              var my_icon = new GIcon();            
              my_icon.image = '/i/logos/'+pic;
              my_icon.iconSize = new GSize(30,30);
              my_icon.iconAnchor = new GPoint(15,15);
              var new_marker = new GMarker(point,{icon: my_icon, title: 'Новое подразделение', draggable: true});
              themarker = new_marker;
              map.addOverlay(new_marker);
              document.getElementById('shir').value = point.lat();
              document.getElementById('dol').value = point.lng();
              GEvent.addListener(new_marker,"dragend",function(){
                    fp = themarker.getPoint();
                    document.getElementById('shir').value = fp.lat();
                    document.getElementById('dol').value = fp.lng();
                 }
              );
              flag=1;
            }
          }
      );        
    }
  }
}
function adsdrawcircle(){
var point=new GLatLng(parseFloat(document.getElementById('firm_shir').value), parseFloat(document.getElementById('firm_dol').value) );
   if (document.getElementById('radius').value==20) var zoomparam=9;
            if (document.getElementById('radius').value==50) var zoomparam=8;
            if (document.getElementById('radius').value==100) var zoomparam=7;
            if (document.getElementById('radius').value==200) var zoomparam=6;
             if (document.getElementById('radius').value==500) var zoomparam=5;
                         if (document.getElementById('radius').value==1500) var zoomparam=3;
                                     if (document.getElementById('radius').value>1500) var zoomparam=2;
	drawCircle(point,document.getElementById('radius').value,50);
	   map.setCenter(point, zoomparam);
}

