var rulesVar =  new Array(3);
rulesVar[1] = 1;
rulesVar[2] = 1;
var searchClick,searchClicked=0,searchClickedMap=0,searchClickMap;

function myopenhide(open,hide)
{
	$("#"+open).fadeIn(100);	
	$("#"+hide).fadeOut(100);
	return false;	
}
var mapOpened=0;
function justOpenMap(open,opener)
{
	if(mapOpened==0) {$("#"+open).fadeIn(100); $("#"+opener).text("Скрыть карту");}
	else {$("#"+open).fadeOut(100); $("#"+opener).text("Искать на карте");}
	mapOpened = (mapOpened+1)%2;
	map.redraw();
	SetCookie('ck_mapOpened', mapOpened, 1);
	redraw(map,shops,count);
	return false;	
}
var actReg = 0;
function openDivReg(id)
{
	if(actReg==0) {$("#"+id).fadeIn(100); $("#container").addClass('globalOpacity');}	
	if(actReg==1) {$("#"+id).fadeOut(100); $("#container").removeClass('globalOpacity');}	
	
	actReg++;
	actReg = actReg%2;
	return false;
}

function sFirmSubmit(form)
{
	if(searchClicked == 1)
		form.submit();
}


var listsOfSelect =  new Array(3);
listsOfSelect[0] = 0; listsOfSelect[1] = 0; listsOfSelect[2] = 0;
function openList(n)
{
	if(listsOfSelect[n] == 1)
	{
		listsOfSelect[n] = 0;
		return myopenhide("selectListRes"+n,"selectList"+n);
	}
	else
	{
		listsOfSelect[n] = 1;
		return myopenhide("selectList"+n,"selectListRes"+n);
	}
	return false;
}

function voteVkontakte(texts,rateType){
	var rateType1;
	if(rateType>0) rateType1 = rateType;
	else rateType1 = 0;
	var url = "http://vkontakte.ru/share.php?title="+encodeURIComponent(texts.vkontakte.title)+"&description="+encodeURIComponent(texts.vkontakte.summary)+"&url="+encodeURIComponent(texts.vkontakte.url)+"&image="+encodeURIComponent(texts.vkontakte.image);
	if(rateType1 == 0) window.open(url,'','toolbar=0,status=0,width=626,height=436');
	$.post("uprate.php", { id: texts.id,rate:texts.rate,type: rateType1},
function(data) {
  $('#rateBox').html(data);
}
);
	return false;
}

function voteRec(id,rate)
{
	$.post("upraterec.php", { id: id,rate:rate},
		function(data) {
		  $('#rateRec'+id).html(data);
		}
	);
	return false;
}
function voteVkontakte2(texts){
	var url = "http://vkontakte.ru/share.php?title="+encodeURIComponent(texts.vkontakte.title)+"&description="+encodeURIComponent(texts.vkontakte.summary)+"&url="+encodeURIComponent(texts.vkontakte.url)+"&image="+encodeURIComponent(texts.vkontakte.image);
	window.open(url,'','toolbar=0,status=0,width=626,height=436');
	$.post("uprate2.php", { id: texts.id, rate:texts.rate},
function(data) {
  $('#rateBox').html(data);
}
);
	return false;
}



function showRules(num)
{
	if(rulesVar[num]>0)
		$("#rules"+num).show();	
	else
		$("#rules"+num).hide();			
	rulesVar[num] = - rulesVar[num];
	
	return false;
}



$(document).ready(function(){   
	var sa1=2,sa2=2,sa3=1,sa4=2;

	$("#fSelect").hover(function(){$("#fSelect").attr({style: "background-image:url('images/menu1Hover.png')"});},function(){ $("#fSelect").attr({style: "background-image:url('images/menu1.png')"});});
	$("#sSelect").hover(function(){$("#sSelect").attr({style: "background-image:url('images/menu2Hover.png')"});},function(){ $("#sSelect").attr({style: "background-image:url('images/menu2.png')"});});
	$("#tSelect").hover(function(){$("#tSelect").attr({style: "background-image:url('images/menu3Hover.png')"});},function(){ $("#tSelect").attr({style: "background-image:url('images/menu3.png')"});});
	$("#foSelect").hover(function(){$("#foSelect").attr({style: "background-image:url('images/menu4Hover.png')"});},function(){ $("#foSelect").attr({style: "background-image:url('images/menu4.png')"});});
	$("#fiSelect").hover(function(){$("#fiSelect").attr({style: "background-image:url('images/menu5Hover.png')"});},function(){ $("#fiSelect").attr({style: "background-image:url('images/menu5.png')"});});
	$("#siSelect").hover(function(){$("#siSelect").attr({style: "background-image:url('images/menu6Hover.png')"});},function(){ $("#siSelect").attr({style: "background-image:url('images/menu6.png')"});});
	$("a.zoom").fancybox({
				'overlayOpacity'	:	0.7,
				'overlayColor'		:	'#FFF'
			});
	
	$('#addCommentLink').click(function(){
		if(sa3==1)
		{
			$('#addComment').fadeIn(700);
			$('#addCommentLink').fadeOut(700);
			sa3=2;
		}
		else if(sa3==2)
		{
			$('#addComment').hide();
			sa3=1;
		}
		
		return false;

	});

 
	
		$("#slider").easySlider({
			controlsShow: false,
			speed: 800,
			auto: true,
			pause: 10000,
			vertical: true, 
			continuous: true 		
		});
		$("#seasonSlider").easySlider({
			controlsShow: false,
			speed: 500,
			auto: true,
			pause: 3000,
			vertical: true,
			continuous: true 		
		});
		$("#slider1").easySlider({
			controlsShow: false,
			speed: 600,
			auto: true,
			pause: 5000,
			continuous: true 		
		});

		$("#seasonSlider").show(500);

		$("#metroMapClose").click(
			function()
			{
				$("#metroMap").fadeOut(300);
				return false;	
			}
		);
		$("#metroMapOpen").click(
			function()
			{
				$("#metroMap").fadeIn(300);
				return false;	
			}
		);
		$("#buttonHideMetro").click(
			function()
			{
				$("#buttonHideMetroSpan").fadeOut(300);
				$("#hiddenMetro").fadeIn(300);
				return false;	
			}
		);
		$("#searchInput").click(
			function()
			{
				if(searchClicked==0)
				{
					searchClick = document.getElementById('searchInput');
					psearchClick = document.getElementById('psearchInput');
					searchClick.value = '';
					psearchClick.className = 'simpleinput';
					searchClicked = 1;
				}
			}
		);
		$("#searchInputMap").click(
			function()
			{
				if(searchClickedMap==0)
				{
					searchClickMap = document.getElementById('searchInputMap');
					searchClickMap.className = 'simplecolorimput';
					searchClickedMap = 1;
				}
			}
		);


}); 
function addGood(idGood,idDiv)
{
	$.post("addGoodjs.php", { idGood: idGood},
	function(data) {
	  $('#'+idDiv).html(data);
	});
	return false;
}

function delGood(idGood,idDiv)
{
	$.post("delGoodjs.php", { idGood: idGood},
	function(data) {
	  $('#'+idDiv).html(data);
	});
	return false;
}
function searchmap(a,b) {search(a,b); redraw(map,shopsDraw); return false;}
function distances(shops,center,countPt){for(var ind = 0; ind < countPt; ind++) shops[ind]['dist'] = shops[ind]['coord'].distance(center);		}
function pow(a,b){var res = 1; for(var i = 0; i<b;i++) res = res *a; return res;}
function drawNear(map,shops,count,zoom)
{
	var tempZoom = max(10,zoom);
	var near = pow(1.6,(17 - tempZoom)) * 500;
	for (var i = 0; i < count; i++)  
	{
		if(shops[i]['dist'] < near)
		{
			if(shops[i]['active'] == 1)
				map.addOverlay(shops[i]['mark']);
		}
		else
			break;	
	}
	//alert(i);
}

function redraw(map,shops,count)
{
	var center = map.getCenter(), percent;
	var zoom = map.getZoom();
	var mapSize = map.getContainerSize();
	var tempCoord;
	var tempZoom = max(10,zoom);
	var near = pow(1.6,(17 - tempZoom)) * 600;

	//dispell(shops,count);
	distances(shops,center,count);
	bulbSort(shops,'dist',count);
	
	for(var i = 0; i < count; i++)
	{
		if(shops[i]['dist'] < near)
		{
			tempCoord = map.converter.coordinatesToLocalPixels(shops[i]['coord']);
			if(tempCoord.x>=0 && tempCoord.y>=0 && tempCoord.x<mapSize.x && tempCoord.y<mapSize.y)
			{
				if(shops[i]['active'] == 0)
				{
					shops[i]['active'] = 1;
					map.addOverlay(shops[i]['mark']);
				}
			}
			else
			{
				if(shops[i]['active'] == 1)
				{
					shops[i]['active'] = 0;
					map.removeOverlay(shops[i]['mark']);
				}
			}
		}
		else
		{
			if(shops[i]['active'] == 1)
			{
				shops[i]['active'] = 0;
				map.removeOverlay(shops[i]['mark']);
			}
		}
	}

	
	
//	drawNear(map,shops,count,zoom);
	SetCookie('ck_zoom', zoom, 1);
	SetCookie('ck_lng', center.getLng(), 1);
	SetCookie('ck_lat', center.getLat(), 1);	
}


function redrawSmall(map,shops,count)
{
	var center = map.getCenter(), percent;
	var zoom = map.getZoom();
	var mapSize = map.getContainerSize();
	var tempCoord;
	var tempZoom = max(10,zoom);
	var near = pow(1.6,(17 - tempZoom)) * 600;

	distances(shops,center,count);
	bulbSort(shops,'dist',count);
	var countSmall = min(15,count)	
	for(var i = 0; i < countSmall; i++)
	{
		if(shops[i]['dist'] < near)
		{
			tempCoord = map.converter.coordinatesToLocalPixels(shops[i]['coord']);
			if(tempCoord.x>=0 && tempCoord.y>=0 && tempCoord.x<mapSize.x && tempCoord.y<mapSize.y)
			{
				if(shops[i]['active'] == 0)
				{
					shops[i]['active'] = 1;
					map.addOverlay(shops[i]['mark']);
				}
			}
			else
			{
				if(shops[i]['active'] == 1)
				{
					shops[i]['active'] = 0;
					map.removeOverlay(shops[i]['mark']);
				}
			}
		}
		else
		{
			if(shops[i]['active'] == 1)
			{
				shops[i]['active'] = 0;
				map.removeOverlay(shops[i]['mark']);
			}
		}
	}

	
	
//	drawNear(map,shops,count,zoom);
	SetCookie('ck_zoom', zoom, 1);
	SetCookie('ck_lng', center.getLng(), 1);
	SetCookie('ck_lat', center.getLat(), 1);	
}

function redrawActive(map,shops,count)
{
	var center = map.getCenter(), percent;
	var zoom = map.getZoom();
	var mapSize = map.getContainerSize();
	var tempCoord;


	for(var i = 0; i < count; i++)
	{
		tempCoord = map.converter.coordinatesToMapPixels(shops[i]['coord']);
		if(tempCoord.x>=0 && tempCoord.y>=0 && tempCoord.x<=mapSize.x && tempCoord.y<=mapSize.y)
			shops[i]['active'] = 1;
		else
			shops[i]['active'] = 0;
	}

	dispell(shops,count);
	drawActive(map,shops,count);
	SetCookie('ck_zoom', zoom, 1);
	SetCookie('ck_lng', center.getLng(), 1);
	SetCookie('ck_lat', center.getLat(), 1);	
}

function drawActive(map,shops,count)
{
	for (var i = 0; i < count; i++)  
	{
		if(shops[i]['active'] == 1)
			map.addOverlay(shops[i]['mark']);
	}
}

function dispell(shops,count){for (var i = 0; i < count; i++) map.removeOverlay(shops[i]['mark']);}
function search (adress,balloon) {
        var geocoder = new YMaps.Geocoder(adress, {results: 1} );
                var listenerLoad = YMaps.Events.observe(geocoder, geocoder.Events.Load, function (geocoder) {
                    if (geoResult)map.removeOverlay(geoResult);
                    if (geocoder.length()) {
                    geoResult = geocoder.get(0);
                    if(balloon>0)
		{
			map.addOverlay(geoResult);
                        geoResult.openBalloon();
	 		map.setBounds(geoResult.getBounds());
			redraw(map,shops,count);
		}
		return geoResult;
                    } else {
                        return NULL;
                    }
                    listenerLoad.cleanup();
                });
}


function searchAdr (adress) {
	var geocoder = new YMaps.Geocoder(adress, {results: 1} );
	var listenerLoad = YMaps.Events.observe(geocoder, geocoder.Events.Load, function (geocoder) {
		if (geocoder.length()) {
			geoResult = geocoder.get(0);
			$("#searchInputMap").val(geoResult.text);
			return geoResult;
		} else {
			return NULL;
		}
		listenerLoad.cleanup();
	});
}



function myDiv (num,dev){return ((num - num%dev) / dev);}
function min(a,b) {if(b>a) return a; return b;}
function max(a,b) {if(a>b) return a; return b;}
function printPoints(map,pt,serNum,num,all){N = myDiv(num,all);	if(N == 0) {N = 1; all = num;}	for (i = 0; i < all; i++) map.addOverlay(pt[serNum + i*N]['mark']);}

function bulbSort(shops,param,count){	var i,j,temp;	for(i=0;i<count;i++)		for(j=0;j<count-1;j++)		{			if(shops[j][param]>shops[j+1][param])			{				temp = shops[j];				shops[j] = shops[j+1];				shops[j+1] = temp;			}		}}


function SetCookie(cookieName,cookieValue,nDays) {
 var today = new Date();
 var expire = new Date();
 if (nDays==null || nDays==0) nDays=1;
 expire.setTime(today.getTime() + 3600000*24*nDays);
 document.cookie = cookieName+"="+escape(cookieValue)
                 + ";expires="+expire.toGMTString();
}

function addPlusMinus(form,target)
{
	$('#'+form).ajaxSubmit({url: 'addPlusMinus.php', type:'post',
		success: function (responseText){$("<li/>",{
    'class': 'shortedLi',
    html: responseText
  }).appendTo("#"+target);}
	});
	return false;
}

function searchOnInput()
{
	var textSearch = $("#searchInputMap").val();
	if(count == 0) return alert('Ошибка, карта еще не загрузилась');
	search(textSearch,2);
	return false;
}
