//-------- флаги свободности кнопок ---------
flMyLoc = true;
flShop = true;
flRoad = true;

//---------- названия полей инфы ------------
updatedId = 0;
divider = '<br>';
field_user = new Array();
field_user[0] = 'Имя: ';
field_user[1] = 'ник: ';
field_user[2] = 'на чем катаюсь: ';
field_user[3] = 'модель: ';
field_user[4] = 'телефон: ';
field_user[5] = 'ICQ: ';
field_user[6] = 'E-mail: ';
field_user[7] = 'web: ';

field_shop = new Array();
field_shop[0] = 'Название: ';
field_shop[1] = 'телефон: ';
field_shop[2] = 'web: ';
field_shop[3] = 'описание: ';

field_road = new Array();
field_road[0] = 'Название: ';
field_road[1] = 'описание: ';

//---------- общие для маркеров ----------------
function delMarker(id){
	if( semafor.start(id, '', '', '', '', '', '') ){
		sendXMLh(onMarkerDel, "act=del&id="+ id);
	}else alert('Сейчас выполняется другой запрос, повторите попытку позже.');
}
function approveMarker(id, i, vid){
	if( semafor.start(id, i, vid, '', '', '', '') ){
		sendXMLh(onApproved, "act=approve&id="+ id +'&en=1');
	}else alert('Сейчас выполняется другой запрос, повторите попытку позже.');
}

function editMarker(id, key, vid){
	if( vid=='user' ){
		document.getElementById('shops').style.display = 'none';
		document.getElementById('roads').style.display = 'none';
		//document.getElementById('adm_users').style.display = 'none';
		document.getElementById('but_myloc').style.display = 'none';
		document.getElementById('new_my').style.display = 'block';
		document.getElementById('div_upd_my').style.display = 'block';
		document.getElementById('my_vid_moto').style.display = 'none';
		document.getElementById('head_myloc').innerHTML = 'Редактирование пользователя';

		var buf = adm.infa_users[key].split(divider);
		document.mapForm.my_name.value = buf[0].slice(field_user[0].length);
		document.mapForm.my_nik.value = buf[1].slice(field_user[1].length);
		document.mapForm.my_vid_moto_hid.value = buf[2].slice(field_user[2].length);
		document.mapForm.my_model.value = buf[3].slice(field_user[3].length);
		document.mapForm.my_phone.value = buf[4].slice(field_user[4].length);
		document.mapForm.my_icq.value = buf[5].slice(field_user[5].length);
		document.mapForm.my_email.value = buf[6].slice(field_user[6].length);
		document.mapForm.my_web.value = buf[7].slice(field_user[7].length);
		updatedId = id;
	}else if( vid=='shop' ){
		document.getElementById('myInfa').style.display = 'none';
		document.getElementById('roads').style.display = 'none';
		//document.getElementById('my_shops').style.display = 'none';
		document.getElementById('but_shops').style.display = 'none';
		document.getElementById('new_shop').style.display = 'block';
		document.getElementById('div_upd_shop').style.display = 'block';

		var buf = adm.infa_shops[key].split(divider);
		document.mapForm.shop_name.value = buf[0].slice(field_shop[0].length);
		document.mapForm.shop_phone.value = buf[1].slice(field_shop[1].length);
		document.mapForm.shop_web.value = buf[2].slice(field_shop[2].length);
		document.mapForm.shop_desc.value = buf[3].slice(field_shop[3].length);
		updatedId = id;
	}else if( vid=='road' ){
		document.getElementById('myInfa').style.display = 'none';
		document.getElementById('shops').style.display = 'none';
		//document.getElementById('my_roads').style.display = 'none';
		document.getElementById('but_roads').style.display = 'none';
		document.getElementById('new_road').style.display = 'block';
		document.getElementById('div_upd_road').style.display = 'block';

		var buf = adm.infa_roads[key].split(divider);
		document.mapForm.road_name.value = buf[0].slice(field_road[0].length);
		document.mapForm.road_desc.value = buf[1].slice(field_road[1].length);
		updatedId = id;
	}
}

//----------- для моей локации ---------------
function getInfaUser(flag){	if(flag == 'upd') var buf = document.mapForm.my_vid_moto_hid.value;
	else var buf = document.mapForm.my_vid_moto.options[document.mapForm.my_vid_moto.selectedIndex].text;
	return field_user[0] + document.mapForm.my_name.value + divider + field_user[1] + document.mapForm.my_nik.value
			+ divider + field_user[2] + buf + divider + field_user[3] + document.mapForm.my_model.value
			+ divider + field_user[4] + document.mapForm.my_phone.value + divider + field_user[5] + document.mapForm.my_icq.value
			+ divider + field_user[6] + document.mapForm.my_email.value + divider + field_user[7] + document.mapForm.my_web.value;
}
function myLocClick(){	if( !(flShop && flRoad) ) return;
	if(!flMyLoc){
       	document.getElementById('but_myloc').value = "Показать себя на карте";
		GEvent.removeListener(hMapClickMy);
       	flMyLoc = true;
		return;
	}
	if(!myLoc){
		hMapClickMy = GEvent.addListener(map, "click", function(ov, po){
				GEvent.removeListener(hMapClickMy);
	          	flMyLoc = true;
				var infa = getInfaUser('add');
				var s = new String(document.mapForm.my_vid_moto.options[document.mapForm.my_vid_moto.selectedIndex].value);
				var key = s.split(':');
				if( semafor.start(0, '', '', '', '', '', 'Идет обработка запроса добавления Вас на карту') ){
					sendXMLh(onMyLocAdd, "act=add&iduser="+ myUserId +"&key1="+ key[0] +"&key2="+ key[1] +"&x="+ po.x +"&y="+ po.y +"&enable=1&infa_win="+ encodeURIComponent(infa) );
					addMapMyLoc(po.x, po.y, infa, false);
                }else{                	alert('Ошибка!!! Не удалось добавить Вас на карту');			       	document.getElementById('but_myloc').value = "Показать себя на карте";
                }
			});
       	document.getElementById('but_myloc').value = "Отменить показ себя на карте";
       	flMyLoc = false;
	}else{
		delMyLoc();
		editMyLoc();
  	}
}

function editMyLoc(){	if(myLocId > 0){		document.getElementById('my_vid_moto').style.display = 'none';
		document.getElementById('but_upd_myloc').style.display = 'block';
	    document.getElementById('but_myloc').value = "Удалить себя с карты";

		var buf = myInfa.split(divider);
		document.mapForm.my_name.value = buf[0].slice(field_user[0].length);
		document.mapForm.my_nik.value = buf[1].slice(field_user[1].length);
		document.mapForm.my_vid_moto_hid.value = buf[2].slice(field_user[2].length);
		document.mapForm.my_model.value = buf[3].slice(field_user[3].length);
		document.mapForm.my_phone.value = buf[4].slice(field_user[4].length);
		document.mapForm.my_icq.value = buf[5].slice(field_user[5].length);
		document.mapForm.my_email.value = buf[6].slice(field_user[6].length);
		document.mapForm.my_web.value = buf[7].slice(field_user[7].length);
	}else{		document.getElementById('my_vid_moto').style.display = 'block';
		document.getElementById('but_upd_myloc').style.display = 'none';
       	document.getElementById('but_myloc').value = "Показать себя на карте";
	}
}
function updateMyLoc(){	if(myLocId > 0){		var infa = getInfaUser('upd');
       	if( semafor.start(myLocId, '', '', '', '', infa, 'Идет обработка запроса') ){
			sendXMLh(onMyLocUpd, "act=upd&id="+ myLocId +"&infa_win="+ encodeURIComponent(infa) );
		}else alert('Ошибка, не удалось сохранить изменения.');
	}
}

//----------- пользователи ---------------
function updateUser(flag){	document.getElementById('shops').style.display = 'block';
	document.getElementById('roads').style.display = 'block';
	//document.getElementById('adm_users').style.display = 'block';
	document.getElementById('but_myloc').style.display = 'block';
	document.getElementById('new_my').style.display = 'block';
	document.getElementById('div_upd_my').style.display = 'none';
	document.getElementById('my_vid_moto').style.display = 'block';
	document.getElementById('head_myloc').innerHTML = 'Ваша точка на карте';
	editMyLoc();
	if(flag){
		var infa = getInfaUser('upd');
       	if( semafor.start(updatedId, '', '', '', '', infa, 'Идет обработка запроса') ){
			sendXMLh(onUserUpd, "act=upd&id="+ updatedId +"&infa_win="+ encodeURIComponent(infa) );
		}else alert('Ошибка, не удалось сохранить изменения.');
	}
}

//--------------- для магазинов ----------------
function getInfaShop(){
	return field_shop[0] + document.mapForm.shop_name.value + divider + field_shop[1] + document.mapForm.shop_phone.value
					+divider + field_shop[2] + document.mapForm.shop_web.value + divider + field_shop[3] + document.mapForm.shop_desc.value;
}
function shopsClick(){	if( !(flMyLoc && flRoad) ) return;
	if(!flShop){
       	document.getElementById('but_shops').value = "Добавить магазин на карту";
		GEvent.removeListener(hMapClickShop);
       	flShop = true;
		return;
	}else{		hMapClickShop = GEvent.addListener(map, "click", function(ov, po){
				GEvent.removeListener(hMapClickShop);
	          	flShop = true;
		       	document.getElementById('but_shops').value = "Добавить магазин на карту";

				var s = new String(document.mapForm.vid_shop.options[document.mapForm.vid_shop.selectedIndex].value);
				var key = s.split(':');
				var infa = getInfaShop();
			   	if( semafor.start(0, key[0], key[1], po.x, po.y, infa, 'Идет обработка запроса добавления магазина на карту') ){
					sendXMLh(onShopAdd, "act=add&iduser="+ myUserId +"&key1="+ key[0] +"&key2="+ key[1] +"&x="+ po.x +"&y="+ po.y +"&enable=0&infa_win="+ encodeURIComponent(infa) );
				}else alert('Ошибка, не удалось добавить магазин на карту.');
			});
       	document.getElementById('but_shops').value = "Отменить добавление магазина на карте";
       	flShop = false;
	}
}
function updateShop(flag){	document.getElementById('myInfa').style.display = 'block';
	document.getElementById('roads').style.display = 'block';
	//document.getElementById('my_shops').style.display = 'block';
	document.getElementById('but_shops').style.display = 'block';
	document.getElementById('new_shop').style.display = 'block';
	document.getElementById('div_upd_shop').style.display = 'none';
	if(flag){
		var infa = getInfaShop();
       	if( semafor.start(updatedId, '', '', '', '', infa, 'Идет обработка запроса') ){
			sendXMLh(onShopUpd, "act=upd&id="+ updatedId +"&infa_win="+ encodeURIComponent(infa) );
		}else alert('Ошибка, не удалось сохранить изменения.');
	}
}

//------------ для мест катания -------------------
function getInfaRoad(){	return field_road[0] + document.mapForm.road_name.value + divider + field_road[1] + document.mapForm.road_desc.value;
}
function roadsClick(){	if( !(flMyLoc && flShop) ) return;
	if(!flRoad){
       	document.getElementById('but_roads').value = "Добавить на карту место где покататься";
		GEvent.removeListener(hMapClickRoad);
       	flRoad = true;
		return;
	}else{
		hMapClickRoad = GEvent.addListener(map, "click", function(ov, po){
				GEvent.removeListener(hMapClickRoad);
	          	flRoad = true;
		       	document.getElementById('but_roads').value = "Добавить на карту место где покататься";

				var s = new String( document.mapForm.vid_road.options[document.mapForm.vid_road.selectedIndex].value );
				var key = s.split(':');
				var infa = getInfaRoad();
	          	if( semafor.start(0, key[0], key[1], po.x, po.y, infa, 'Идет обработка запроса добавления на карту места где покататься') ){
					sendXMLh(onRoadAdd, "act=add&iduser="+ myUserId +"&key1="+ key[0] +"&key2="+ key[1] +"&x="+ po.x +"&y="+ po.y +"&enable=1&infa_win="+ encodeURIComponent(infa) );
				}else alert('Ошибка, не удалось добавить на карту место где покататься.');
			});
       	document.getElementById('but_roads').value = "Отменить добавление места где покататься";
       	flRoad = false;
	}
}

function updateRoad(flag){	document.getElementById('myInfa').style.display = 'block';
	document.getElementById('shops').style.display = 'block';
	//document.getElementById('my_roads').style.display = 'block';
	document.getElementById('but_roads').style.display = 'block';
	document.getElementById('new_road').style.display = 'block';
	document.getElementById('div_upd_road').style.display = 'none';
	if(flag){		var infa = getInfaRoad();
       	if( semafor.start(updatedId, '', '', '', '', infa, 'Идет обработка запроса') ){
			sendXMLh(onRoadUpd, "act=upd&id="+ updatedId +"&infa_win="+ encodeURIComponent(infa) );
		}else alert('Ошибка, не удалось сохранить изменения.');
	}
}

