// JavaScript Document


var oldsel = '';

//для лейблов
function checkTextField(fieldID, labelID){
	if($('#'+fieldID).val() == ''){$('#'+labelID).css('display', 'block');}else{$('#'+labelID).css('display', 'none');}
}

//делаем карту
function mapInit(){
		var map = new YMaps.Map(document.getElementById('map'));
        map.setCenter(new YMaps.GeoPoint(45.185025,54.184593), 14);	
		
		//add controls
		map.addControl(new YMaps.TypeControl());
		map.addControl(new YMaps.ToolBar());
		map.addControl(new YMaps.Zoom());
		map.addControl(new YMaps.ScaleLine());
		
		//enable scrollZoom
		//map.enableScrollZoom();
		
		return map;
}


//покажем список маршрутов
function showList(){
	$('.showOnMap').click(function(){
		$('.showOnMap').css('display', 'none');
		$('.showOnMap-reduce').css('display', 'block');		
		$('#catList').css('display', 'block');
		
		$('#transportTypes').css('display', 'none');
		$('#numbers').css('display', 'none');
		$('.transport-reduce').css('display', 'none');				
		$('.transport').css('display', 'block');		
		
		$('.trol-reduce').css('display', 'none');				
		$('.trol').css('display', 'block');		
		
		$('.avt-reduce').css('display', 'none');				
		$('.avt').css('display', 'block');		
		
		$('.gaz-reduce').css('display', 'none');				
		$('.gaz').css('display', 'block');		

	});
	
	$('.showOnMap-reduce').click(function(){
		$('#catList').css('display', 'none');
		$('.showOnMap-reduce').css('display', 'none');				
		$('.showOnMap').css('display', 'block');		
	});
}

// Функия создания метки
function createPlacemark (geoPoint, name, description) {
  var placemark = new YMaps.Placemark(geoPoint);
  placemark.name = name;
  placemark.description = description;
  return placemark;
}



//покажем оверлеи  категории
function showOverlay(map, id){
//  if (pp == null) {pp = 10;}
//  if (p == null) {p = 1;}
  
	map.removeAllOverlays();
//	ml = new YMaps.YMapsML('http://maprm.ru/ajax/yaml.php?id='+id+"&pp="+pp+"&p="+p);
	ml = new YMaps.YMapsML('http://maprm.ru/ajax/yaml.php?id='+id);

	var bounds = new YMaps.GeoCollectionBounds();

	YMaps.Events.observe(ml, ml.Events.Load, function (ml1) {
		ml1.get(0).forEach(function (item) {
			var point = item.getGeoPoint();
			bounds.add(point);
		});
		map.setBounds(bounds);
	});

//	$('#orgListCatListBody').html('<ul class="firmlist">');
	
    // Вызывает функцию-обработчик для каждого объекта
	YMaps.Events.observe(ml, ml.Events.Load, function (ml1) {
	  ml1.get(0).forEach(function (obj) {
	  // Создает ссылку на объект
	    var li = YMaps.jQuery("<li><a class='af' href=\"#\">" + obj.name + "</a><span class='point'>&nbsp;</span><div class='card' onclick=\"showFirmCard(" + obj.metaDataProperty.AnyMetaData.firm_id + ");\">карточка</div></li>"),
            a = li.find("a");
	    //alert(obj.metaDataProperty.AnyMetaData.firm_id);
	    var bc = '<div style="width:250px;"><strong>' + obj.name + '</strong><p>' + obj.description + '</p>'+ '<div style="text-weight: bold; border-bottom:1px dotted #0168BB; cursor: pointer; display:inline-block;" id="card_button_1348" rel=1348 onclick="showFirmCard(' + obj.metaDataProperty.AnyMetaData.firm_id + ');">Карточка организации</div>' + '</div>';
	    obj.setBalloonContent(bc);
        // Создает обработчик щелчка мыши по ссылке
	    li.bind("click", function () {
	      map.panTo(obj.getGeoPoint(), {
                flying: 1,
                callback: function () {
                    obj.openBalloon();
                }
	      });
	      map.setZoom(14, {
		smooth: false,
		position: obj.getGeoPoint()
	      });
	      return false;
	    });
        
        // Создает слушатели событий открытия и закрытия балуна объекта
	    YMaps.Events.observe(obj, obj.Events.BalloonOpen, function () {
	      a.css("text-decoration", "none");
	      a.css("font-weight", "bold");
	    });
        
	    YMaps.Events.observe(obj, obj.Events.BalloonClose, function () {
	      a.css("text-decoration", "");
	      a.css("font-weight", "");
	    });
        
        // Добавляет ссылку на объект в общий список
	    li.appendTo($('#orgListCatListBody'));
	  });
//	  $('#orgListCatListBody').html($('#orgListCatListBody').html() + "</ul>");
	});
	
    // Создаем область показа по группе точек
    //bounds = new YMaps.GeoCollectionBounds(obj);
    
//	alert(points);
//	alert(bounds.getMapZoom());

		// Применяем область показа к карте
//		map.setBounds(bounds);
	
	map.addOverlay(ml);
	$('#orgListCatListLoading').css('display', 'none');
}


//покажем оверлеи выбранной категории
function showSelectedCat(map, id, orgtitle){
  $('#catList').css('display', 'none');
  $('.showOnMap-reduce').css('display', 'none');				
  $('.showOnMap').css('display', 'block');		

  $('#orgListCatTree').css('display', 'none');
//	$('#orgListCatList').css('display', 'none');

  $('#orgListCatListBody').text('');
  $('#orgTitle').text(orgtitle);

  $('#orgListCatList').css('display', 'none');
  $('#orgListCatListLoading').css('display', 'block');

  showOverlay(map, id);

  $('#orgListCatList').css('display', '');
  //$('#orgListCatListLoading').css('display', 'none');
}


//покажем оверлей адреса
function showAddress(map, value) {
    if(value != ''){
        $('#result').css('display', 'none');
        $('#goods').css('display', 'block');
        $('#temp').css('display', 'block');
        map.removeAllOverlays();
        var geocoder = new YMaps.Geocoder('Мордовия, Саранск, ' + value, {results: 1});

        YMaps.Events.observe(geocoder, geocoder.Events.Load, function () {
            if (this.length()) {
              mark=this.get(0);
                $.ajax({
                    type: 'POST',
                    url: 'http://www.maprm.ru/ajax/getOrganisationsByAddress.php',
                    data: 'address='+mark.text,
                    success: function(result){
                        if(result != '')
                            result = '<hr />Найденные организации:<br />'+result;
                        mark.setBalloonContent('<div style="width:200px;">'+mark.text+result+'</div>');
                        mark.openBalloon();
                        map.addOverlay(mark);
                    }
                });
            }else {
                alert("Ничего не найдено")
            }
        });
    }
}


//покажем организации
function showOrgAddress(map, value){
    if(value != ''){
	//оверлеи
	map.removeAllOverlays();

	$('#orgSearchResult').html('');
	$('#accordion').css('display', 'none');
	
	ml = new YMaps.YMapsML('http://maprm.ru/ajax/orgYaml.php?orgValue='+value);

	//alert('sdsd');
	//map.setBounds(ml.get(0).getBounds());

	var bounds = new YMaps.GeoCollectionBounds();
	$('#resViewBlock').css('display', 'block');
	$('#loading').css('display', '');
	$('#result').css('display', 'block');
	//$('#orgSearchResult').css('display', 'block');

	YMaps.Events.observe(ml, ml.Events.Load, function (ml1) {
		ml1.get(0).forEach(function (obj) {
			var point = obj.getGeoPoint();
			bounds.add(point);
			//alert(item.name);
		});
		map.setBounds(bounds);
	});
	
    // Вызывает функцию-обработчик для каждого объекта
	YMaps.Events.observe(ml, ml.Events.Load, function (ml1) {
		ml1.get(0).forEach(function (obj) {
				//alert(obj.name);
        // Создает ссылку на объект
        var li = YMaps.jQuery("<li><a class='af' href=\"#\">" + obj.name + "</a><span class='point'>&nbsp;</span><div class='card' onclick=\"showFirmCard(" + obj.metaDataProperty.AnyMetaData.firm_id + ");\">карточка</div></li>"),
            a = li.find("a"); 

	    var bc = '<div style="width:250px;"><strong>' + obj.name + '</strong><p>' + obj.description + '</p>'+ '<div style="text-weight: bold; border-bottom:1px dotted #0168BB; cursor: pointer; display:inline-block;" id="card_button_1348" rel=1348 onclick="showFirmCard(' + obj.metaDataProperty.AnyMetaData.firm_id + ');">Карточка организации</div>' + '</div>';
	    obj.setBalloonContent(bc);
        
        // Создает обработчик щелчка мыши по ссылке
        li.bind("click", function () {
	  map.setZoom(14, {
	  smooth: false,
	  position: obj.getGeoPoint()
	  });
            map.panTo(obj.getGeoPoint(), {
                flying: 1,
                callback: function () {
                    obj.openBalloon();
                }
            });
            return false;
        });
        
        // Создает слушатели событий открытия и закрытия балуна объекта
        YMaps.Events.observe(obj, obj.Events.BalloonOpen, function () {
            a.css("text-decoration", "none");
            a.css("font-weight", "bold");
        });
        
        YMaps.Events.observe(obj, obj.Events.BalloonClose, function () {
            a.css("text-decoration", "");
            a.css("font-weight", "");
        });
        
        // Добавляет ссылку на объект в общий список
        li.appendTo($('#orgSearchResult'));
    });
	});
//	$('#result').html($('#result').html() + "</ul>");

	$('#loading').css('display', '');
	$('#result').css('display', 'block');
	$('#orgSearchResult').css('display', 'block');




	map.addOverlay(ml);


//	m1.applyView();
	
	//для поля "результат"
/*
	$.ajax({
		type: 'POST',
		cache: false,
		data: 'orgValue=' + value,
		url: '/ajax/resultField.php', 
		beforeSend: function(){
			$('#result').css('display', 'none');
                        //$('#goods').css('display', 'none');
                        //туры
                        //$('#temp').css('display', 'none');
			$('#resViewBlock').css('display', 'block');
			$('#loading').css('display', 'block');
		},
		success: function(result){
			$('#loading').css('display', 'none');
			$('#result').html(result);
			$('#result').css('display', 'block');
		}
	});
*/
    }
}


//покажем типы транспорта
function showTransport(){
	$('.transport').click(function(){
		$('.transport').css('display', 'none');
		$('.transport-reduce').css('display', 'block');		
		$('#transportTypes').css('display', 'block');
		
		$('#catList').css('display', 'none');		
		$('.showOnMap-reduce').css('display', 'none');				
		$('.showOnMap').css('display', 'block');		

	});
	$('.transport-reduce').click(function(){
		$('#transportTypes').css('display', 'none');
		$('#numbers').css('display', 'none');
		$('.transport-reduce').css('display', 'none');				
		$('.transport').css('display', 'block');
		
		$('.trol-reduce').css('display', 'none');				
		$('.trol').css('display', 'block');		
		
		$('.avt-reduce').css('display', 'none');				
		$('.avt').css('display', 'block');		
		
		$('.gaz-reduce').css('display', 'none');				
		$('.gaz').css('display', 'block');				
	});
}
//покажем номера маршрутов
function showNumbers(){
	$('.trol').click(function(){		
		$.ajax({
			type: 'POST', 
			url: '/ajax/numbers.php',
			data: 'id=1',
			beforeSend: function(){
				$('.trol').css('display', 'none');
				$('.avt-reduce').css('display', 'none');
				$('.gaz-reduce').css('display', 'none');
				$('.trol-reduce').css('display', 'block');
				$('.avt').css('display', 'block');
				$('.gaz').css('display', 'block');				
			},
			success: function(result){
				$('#numbers').html(result);
				$('#numbers').css('display', 'block');				
			}
		});
	});
	$('.trol-reduce').click(function(){
		$('#numbers').css('display', 'none');				
		$('.trol-reduce').css('display', 'none');
		$('.trol').css('display', 'block');		
	});
	
	$('.avt').click(function(){		
		$.ajax({
			type: 'POST', 
			url: '/ajax/numbers.php',
			data: 'id=2',
			beforeSend: function(){
				$('.avt').css('display', 'none');
				$('.trol-reduce').css('display', 'none');
				$('.gaz-reduce').css('display', 'none');
				$('.avt-reduce').css('display', 'block');
				$('.trol').css('display', 'block');
				$('.gaz').css('display', 'block');				
			},
			success: function(result){
				$('#numbers').html(result);
				$('#numbers').css('display', 'block');				
			}
		});
	});
	$('.avt-reduce').click(function(){
		$('#numbers').css('display', 'none');				
		$('.avt-reduce').css('display', 'none');
		$('.avt').css('display', 'block');		
	});
	
	$('.gaz').click(function(){		
		$.ajax({
			type: 'POST', 
			url: '/ajax/numbers.php',
			data: 'id=3',
			beforeSend: function(){
				$('.gaz').css('display', 'none');
				$('.avt-reduce').css('display', 'none');
				$('.trol-reduce').css('display', 'none');
				$('.gaz-reduce').css('display', 'block');
				$('.avt').css('display', 'block');
				$('.trol').css('display', 'block');				
			},
			success: function(result){
				$('#numbers').html(result);
				$('#numbers').css('display', 'block');				
			}
		});
	});
	$('.gaz-reduce').click(function(){
		$('#numbers').css('display', 'none');				
		$('.gaz-reduce').css('display', 'none');
		$('.gaz').css('display', 'block');		
	});
}


// список остановок
function getStops(trtype, tr_id) {
	$.ajax({
		url: '/ajax/stoplist.php',
		type: 'POST',
		data: 'id='+trtype+"&trid="+tr_id,
		success: function(result){
			if (oldsel != '') { $(oldsel).attr('class', 'tr_number');	}
			oldsel = "#b_"+trtype+"_"+tr_id;
			$("#b_"+trtype+"_"+tr_id).attr('class', 'tr_number_selected');	
			$("#bt_"+trtype).html(result);
		}
	});

}

//рисуем проезд
function drawPath(map, id){
	//оверлеи
	map.removeAllOverlays();
	ml = new YMaps.YMapsML('http://www.maprm.ru/ajax/getStops.php?id='+id);
	map.addOverlay(ml);
	
	$.ajax({
		url: '/ajax/path.php',
		type: 'POST',
		data: 'id='+id,
		success: function(result){
			result = eval('('+result+')');
			ln = result.ln;
			lt = result.lt;
			var points = new Array();
			for(var key in ln){
				points[key] = new YMaps.GeoPoint(ln[key], lt[key]);		
			}
			var bounds = new YMaps.GeoCollectionBounds(points);

			var s = new YMaps.Style();
			s.lineStyle = new YMaps.LineStyle();
			s.lineStyle.strokeColor = '00ee0099';
			s.lineStyle.strokeWidth = '5';
			YMaps.Styles.add("path#main", s);

			var pl = new YMaps.Polyline(points, 'маршрут');
			pl.setStyle("path#main");

			map.setBounds(bounds);
			map.addOverlay(pl);

		}
	});
}

//покажем магазины
function showShops(map, id){
    //оверлеи
    map.removeAllOverlays();
    ml = new YMaps.YMapsML('/ajax/shops.php?id='+id);
    map.addOverlay(ml);
}

// покажем список организациев
function toogleShowContacts(id, page) {
	$('#orgListCatTree').css('display', 'none');
	$('#orgListCatList').css('display', 'none');
	$('#orgListCatListLoading').css('display', '');

	$.ajax({
		url: '/ajax/get_firms_list.php',
		type: 'POST',
		data: 'id='+id+"&page="+page, 
		success: function(result){
		  $('#orgListCatListBody').html(result);
		  $('#orgListCatList').css('display', '');
		  $('#orgListCatListLoading').css('display', 'none');
		  showSelectedCat(map, id);
		}
	});
}


function showFirmCard(id) {
  $('#firmCardMain').css('display', 'none');
  $('#firmCardLoading').css('display', '');
  $("#firmCard").dialog("open");
  $.ajax({
		url: '/ajax/get_firm_card.php',
		type: 'POST',
		data: 'id='+id, 
		success: function(result){
		  $('#firmCardMain').html(result);
		  $('#firmCardMain').css('display', '');
		  $('#firmCardLoading').css('display', 'none');
//		  showSelectedCat(map, id);
		}
	});

  return false;
}


