//  вариант - jQuery  walks - new/ver. e2.jQuery.object
//  работа с картами


function doMaps(jM) {
	// alert("A.desc.coord=["+A.desc.coord+"]");
	var ok = 0 ;

	testText( "<b> doMaps:</b> получено ["+ jM +"] " );
//	if( (!j) && (!jM) ) { jM = -1; }
	if( !jM  ){ jM = j ; }  //  требует доработки - если j задано - или вообще не передавать j
	testText( " принято ["+ jM +"]<br>" );
//	jM = j ;
	if(YesMap>0){
		doResize() ;
		if ( $("#outMaps").css("display") != 'block' ) {
			if( A.tema[0] != undefined){
					var params = A.desc.coord.split(',');
					ok = temaMaps(params, jM);					
			} else {
					temsMaps();
			}	//	if( A.tema[0] != undefined){
			$("#closeMaps").fadeIn(300) ;  
			$("#outMaps").fadeIn(300) ;  
			if( ok != 0 ){ ok.openBalloon(); } //  если задана отметка - открываем балун
		} else { 
			$("#closeMaps").fadeOut(300) ; 
			$("#outMaps").fadeOut(300) ; 
		}  
	}	// if(YesMap>0){
}
 
// --------------------------------------------------------------------------
//  оформляем окно карт прогулки - tema
 	var temaMaps = function(params, jM ){
		var tek_mark = -1 ;	//  попытка открыть балун попозже

			map.closeBalloon() ;
			var p1 = new YMaps.GeoPoint(MapSumm[0],MapSumm[2]) ;
			var p2 = new YMaps.GeoPoint(MapSumm[1],MapSumm[3]) ;
			var bo = new YMaps.GeoBounds( p1, p2 );
			map.setBounds( bo );
	// test		Pm_t1 = new YMaps.Placemark( p1 );	Pm_t2 = new YMaps.Placemark( p2 ); // создаем отметки
	// test		map.addOverlay(Pm_t1);  map.addOverlay(Pm_t2);		// добавляем

			testText( "<b> temaMaps:</b> получено params:[<b>"+params+"</b>]  jM:[<b>"+jM+"</b>] <br>" );
		var color = '000000' ;
		var sled_len = Sled.length-1 ;
		testText( "<b> temaMaps:</b> sled_len:[<b>"+sled_len+"</b>] Sled[sled_len].dsc:[<b>"+Sled[sled_len].dsc+"</b>] Sled[sled_len].name:[<b>"+ Sled[sled_len].name +"</b>]<br>" );
		var new_Map = Sled[sled_len].dsc ;
		if( !Maps[new_Map] ) { testText( "<b> temaMaps:</b>  new_Map:[<b>"+new_Map+"</b>] - - -  <b> Новый </b> <br>" ); 
			Maps[new_Map] = {} ;	// Maps  !!!!!!!!!!!!!!
			Maps[new_Map]['name'] = Sled[sled_len].name ;	// Maps  !!!!!!!!!!!!!!
			Maps[new_Map]['dsc'] = Sled[sled_len].dsc ;	// Maps  !!!!!!!!!!!!!!
			Maps[new_Map]['stylline'] = "walks#"+Sled[sled_len].dsc ;	// Maps  !!!!!!!!!!!!!!

			Maps[new_Map]['collectP'] = new YMaps.GeoObjectCollection();	// коллекция отметок  Maps  !!!!!!
			Maps[new_Map]['collectL'] = new YMaps.GeoObjectCollection();	// коллекция линий	  Maps  !!!!!!
            var s = new YMaps.Style();
            s.lineStyle = new YMaps.LineStyle();   // 	s.iconStyle = new YMaps.IconStyle();
			if( A.desc.map_color != undefined ) {  color = A.desc.map_color ; }
			s.lineStyle.strokeColor = color+'99';  // RRGGBBTT - ТТ - НЕпрозрачность :)
            s.lineStyle.strokeWidth = '5';
			YMaps.Styles.add(Maps[new_Map]['stylline'], s);

            var Points = new Array() ;
            var Placemark = new Array() ;
			var i ;
			var desc_point = '= = = =' ;
			
			for(var im=0; im<A.Picts.length; im++ ) {	// создаем точки на карте по списку "нулевых" - Picts
				i = A.Picts[im] ;						// переход на "счисление" списка A.tema
				var Coords=A.tema[i].coord.split(',');	// разбираем координаты точки 
				Points[im] = new YMaps.GeoPoint( Coords[0], Coords[1] ); 	// создаем точку
				Placemark[im] = new YMaps.Placemark( Points[im], {style:"default#whitePoint"} ); // создаем отметку
				Placemark[im].name = filtrTitle(A.tema[i].msg_1) ; //  отметка - название
				desc_point ='<br><img src="/'+A.desc.pic_path+'/'+A.tema[i].pict_s+'" '; 
				desc_point +=' class="bttn_brd" onClick="TdoShowPictAll(\''+i+'\')" />'; 
				Placemark[im].description = desc_point ; //  отметка - описатель
				Maps[new_Map]['collectP'].add(Placemark[im]);	// Maps  !!!!!!!!!!!!!!  добавили отметку в коллекцию
				if( jM == i ){ tek_mark = im ; }			//  попытка открыть балун попозже
			}
			
			if(A.desc.map_line == "ring"){ Points.push(Points[0]); } // если сказано "ring" - замыкаем кольцо
			var l1 = new YMaps.Polyline(Points);	// создаем линии
			l1.setStyle(Maps[new_Map]['stylline']);			// стиль линии
			l1.name = Sled[Sled.length-1].name ; 	// линии - название  //	l1.description = "прогулка по Москве";
            Maps[new_Map]['collectL'].add(l1);	// Maps  !!!!!!!!!!!!!!		добавили линии в коллекцию
			map.addOverlay(Maps[new_Map]['collectL']);	// Maps  !!!!!!!!!!!!!!
		} else { testText( "<b> temaMaps:</b>  new_Map:[<b>"+new_Map+"</b>] - - -  <b> Повтор </b> <br>" ); }
			for(var im in Maps){
				testText( "<b> temaMaps:add/removeOverlay::</b> im:[<b>"+im+"</b>] new_Map:[<b>"+new_Map+"</b>] --- " );
				if( im == new_Map ){
					map.addOverlay(Maps[im]['collectP']);	// Maps  !!!!!!!!!!!!!!
					testText( "<b>add</b> <br>" );
				}else{
					map.removeOverlay(Maps[im]['collectP']);	// Maps  !!!!!!!!!!!!!!
					testText( "<b>remove</b> <br>" );
				}
			}
		
		testText( "<b> temaMaps:</b> попытка открыть балун попозже / update()<br>" );
		testText( "<b> temaMaps:</b> im:"+im+" tek_mark:"+tek_mark+" :: [+ A.tema[i].msg_1 +]<br>" );
		//	
		var ok = 0 ;
		if( tek_mark >= 0 ){ 			//  если задана отметка - открываем балун
			// Placemark[tek_mark].openBalloon();
			ok = Placemark[tek_mark] ;
		}else{
			for(var im=0; im<A.Picts.length; im++ ) {	// ищем точку по списку "нулевых" - Picts
				if( jM == A.Picts[im] ){ 
					tek_mark = im ;
					testText("<b> temaMaps: - поднимаем балун::</b> Maps[<b>"+ new_Map+"</b>][name] - <b>"+Maps[new_Map]['name']+"</b> tek_mark:[<b>"+tek_mark+"</b>] <br>" );
					ok = Maps[new_Map]['collectP'].get(tek_mark) ;//['name']
					testText("<b> temaMaps: - поднимаем балун:::</b> ok.name=[<b>"+ok.name+"</b>] <br>" );
				//	ok.openBalloon(); 				
					break ;
				}
			}	
		}
		map.redraw();
		return( ok );//  попытка открыть балун попозже
	}
	
// --------------------------------------------------------------------------
//  оформляем окно карт разделов - tems
 	var temsMaps = function(params, jM ){
	//	alert("оформляем окно карт разделов - tems");

			var p1 = new YMaps.GeoPoint(MapSumm[0],MapSumm[2]) ;
			var p2 = new YMaps.GeoPoint(MapSumm[1],MapSumm[3]) ;
			var bo = new YMaps.GeoBounds( p1, p2 );
			map.setBounds( bo );
	// test		Pm_t1 = new YMaps.Placemark( p1 );	Pm_t2 = new YMaps.Placemark( p2 ); // создаем отметки
	// test		map.addOverlay(Pm_t1);  map.addOverlay(Pm_t2);		// добавляем			
			
		var sled_len = Sled.length-1 ;
		testText( "<b> temsMaps:</b> sled_len:[<b>"+sled_len+"</b>] Sled[sled_len].params:[<b>"+Sled[sled_len].params+"</b>] Sled[sled_len].name:[<b>"+ Sled[sled_len].name +"</b>]<br>" );
		var new_Map = Sled[sled_len].params ;
		if( !Maps[new_Map] ) { testText( "<b> temsMaps:</b>  new_Map:[<b>"+new_Map+"</b>] - - -  <b> Новый </b> <br>" ); 
			Maps[new_Map] = {} ;	// Maps  !!!!!!!!!!!!!!
			Maps[new_Map]['name'] = Sled[sled_len].name ;	// Maps  !!!!!!!!!!!!!!
		//	Maps[new_Map]['dsc'] = Sled[sled_len].dsc ;	// Maps  !!!!!!!!!!!!!!
		//	Maps[new_Map]['stylline'] = "walks#"+Sled[sled_len].dsc ;	// Maps  !!!!!!!!!!!!!!
			Maps[new_Map]['collectP'] = new YMaps.GeoObjectCollection();	// коллекция отметок  Maps  !!!!!!
			Maps[new_Map]['collectL'] = new YMaps.GeoObjectCollection();	// коллекция линий	  Maps  !!!!!!

		//	var color = '000000' ;
        //    var s = new YMaps.Style();
        //    s.lineStyle = new YMaps.LineStyle();   // 	s.iconStyle = new YMaps.IconStyle();
		//	s.lineStyle.strokeColor = color+'99';  // RRGGBBTT - ТТ - НЕпрозрачность :)
        //    s.lineStyle.strokeWidth = '5';
        //    YMaps.Styles.add("example#walks", s);

            var Points = new Array() ;
            var Placemark = new Array() ;
			var i=0 ;
			var desc_point ;
			
			for(var im=0; im<A.tems.length; im++ ) {
				if ( A.tems[im].coord != undefined ) { 
					var Coords=A.tems[im].coord.split(',');
					Points[i] = new YMaps.GeoPoint( Coords[0], Coords[1] ); 
					Placemark[i] = new YMaps.Placemark( Points[i], {style:"default#whitePoint"} ); 
					Placemark[i].name = filtrTitle(A.tems[im].name) ;
					desc_point ='<br><img src="/'+A.tems[im].pth+A.tems[im].pct+'" '; 
					desc_point +=' class="bttn_brd" onClick="TdoShow(\''+im+'\')" />'; 
					Placemark[i].description = desc_point ;
				//	map.addOverlay(Placemark[i]);
					Maps[new_Map]['collectP'].add(Placemark[i]);	// Maps  !!!!!!!!!!!!!!  добавили отметку в коллекцию
				//	testText( "<b> temsMaps:</b> "+im+":"+i+" :: ["+ A.tema[i].msg_1 +"]<br>" );
				}
			}
			map.addOverlay(Maps[new_Map]['collectL']);	// Maps  !!!!!!!!!!!!!!
		} else { testText( "<b> temsMaps:</b>  new_Map:[<b>"+new_Map+"</b>] - - -  <b> Повтор </b> <br>" ); }
			for(var im in Maps){
				testText( "<b> temsMaps:add/removeOverlay::</b> im:[<b>"+im+"</b>] new_Map:[<b>"+new_Map+"</b>] --- " );
				if( im == new_Map ){
					map.addOverlay(Maps[im]['collectP']);	// Maps  !!!!!!!!!!!!!!
					testText( "<b>add</b> <br>" );
				}else{
					map.removeOverlay(Maps[im]['collectP']);	// Maps  !!!!!!!!!!!!!!
					testText( "<b>remove</b> <br>" );
				}
			}
			map.redraw();	
		//	testText( "<b> temsMaps:</b> end <br>" );
	}
	
	
	
function TdoShowPictAll(params){
  doShowPictAll(params);
  doMaps();
}

function TdoShow(im){  
	testText( "<b> TdoShow:</b> "+im+": ["+ A.tems[im].name +"]<br>" );
	var dsc;
	var regims;
	var params;
	if( (A.tems[im].dsc != undefined ) && (A.tems[im].dsc != "" ) ) { 
		dsc = A.tems[im].dsc; 
		regims = "tema";
		params = "tema="+A.tems[im].pth+"/"+A.tems[im].dsc+".rus"  ;
	} else { 
		dsc = ""; 
		regims = "tems";
		params = "prnt="+A.tems[im].id  ;
	}
	doShow( regims, params, A.tems[im].name, dsc) ;
  doMaps();
}
 