//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

$j = jQuery.noConflict();

var ddd;
var delt = 14.2;

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// HighSlide
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

hs.registerOverlay({
	thumbnailId: null,
	position: 'top right',
	hideOnMouseOut: true
});

hs.graphicsDir = '/admin/lib/highslide/graphics/';
hs.outlineType = 'rounded-white';

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

$j(document).ready(function(){	

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//	Сменить текст на главной странице
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	
	$j("#main-page-next").click(function(){
		
		var page_count = $j(".main-page").length;
		
		if ($j(this).hasClass("blocked"))
			return false;
		else {
			$j("#main-page-next").addClass("blocked");
			$j("#main-page-prev").addClass("blocked");			
		}
		
		var last_page = "-" + (page_count-1)*290 + "px";
		
		if ($j(".main-page-wrap").css("left")==last_page)
			$j(".main-page-wrap").animate({
					left: '0px'
				}, 
				500,
				function(){
					$j("#main-page-next").removeClass("blocked");
					$j("#main-page-prev").removeClass("blocked");
				}
			);
		else
			$j(".main-page-wrap").animate({
					left: '-=290px'
				}, 
				500,
				function(){
					$j("#main-page-next").removeClass("blocked");
					$j("#main-page-prev").removeClass("blocked");
				}
			);
	});
	
	$j("#main-page-prev").click(function(){
		
		var page_count = $j(".main-page").length;
		
		if ($j(this).hasClass("blocked"))
			return false;
		else {
			$j("#main-page-next").addClass("blocked");
			$j("#main-page-prev").addClass("blocked");
		}
		
		if ($j(".main-page-wrap").css("left")=="0px")
			$j(".main-page-wrap").animate({
					left: '-' + (page_count-1)*290 + 'px'
				}, 
				500,
				function(){
					$j("#main-page-next").removeClass("blocked");
					$j("#main-page-prev").removeClass("blocked");
				}
			);
		else
			$j(".main-page-wrap").animate({
					left: '+=290px'
				}, 
				500,
				function(){
					$j("#main-page-next").removeClass("blocked");
					$j("#main-page-prev").removeClass("blocked");
				}
			);
	});

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//	Показать схему проезда
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

	$j("div.show-map, #show-way").click(function(){
		
		if ($j.browser.msie)
			$j(".map-wrap").show();
		else 
			$j(".map-wrap").fadeIn(500);
		
		$j("html:not(:animated)"+( ! $j.browser.opera ? ",body:not(:animated)" : "")).animate({scrollTop:0});
		
	});
	
	$j("#map12").click(function(){
		
		$j("#show12").click();
		
		if ($j.browser.msie)
			$j(".map-wrap").show();
		else 
			$j(".map-wrap").fadeIn(500);
		
		$j("html:not(:animated)"+( ! $j.browser.opera ? ",body:not(:animated)" : "")).animate({scrollTop:0});
			
	});
	
	$j("#map102").click(function(){
		
		$j("#show102").click();
		
		if ($j.browser.msie)
			$j(".map-wrap").show();
		else 
			$j(".map-wrap").fadeIn(500);
		
		$j("html:not(:animated)"+( ! $j.browser.opera ? ",body:not(:animated)" : "")).animate({scrollTop:0});		
		
	});
	
	$j("#map67").click(function(){
		
		$j("#show67").click();
		
		if ($j.browser.msie)
			$j(".map-wrap").show();
		else 
			$j(".map-wrap").fadeIn(500);
		
		$j("html:not(:animated)"+( ! $j.browser.opera ? ",body:not(:animated)" : "")).animate({scrollTop:0});
		
	});
	
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//	Скрыть схему проезда
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

	$j(".map-frame .close").click(function(){
		
		$j("#map div").hide();
		
		if ($j.browser.msie)
			$j(this).parent().parent().parent().hide();
		else 
			$j(this).parent().parent().parent().fadeOut(500);
				
	});
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	$j(".map-wrap").click(function(e){
		
		if(e.target.id==e.currentTarget.id)
		{
			if ($j.browser.msie)
				$j(".map-wrap").hide();
			else 
				$j(".map-wrap").fadeOut(500);
		}
		return false;
				
	});	
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//	Переключение маршрутов
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

	$j("#show12").click(function(){
		$j("#route102").hide();
		$j("#route67").hide();
		$j("#route12").show();
	});
	
	$j("#show102").click(function(){
		$j("#route12").hide();
		$j("#route67").hide();
		$j("#route102").show();
	});
	
	$j("#show67").click(function(){
		$j("#route102").hide();
		$j("#route12").hide();
		$j("#route67").show();
	});
	
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//	Перемещение по схеме проезда
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

	//$j(".map").mouseup(function(){
	//places();
	//return false;
	//});
	places();

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//	Подключаем календарь
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	
	$j.datepicker.setDefaults(
        $j.extend($j.datepicker.regional["ru"])
  	);
  	
  	$j("#feedback-date").datepicker({
  		dateFormat: "dd.mm.yy"
	});
	
	$j("#ui-datepicker-div").css("z-index", "1000");

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//	Открытие формы комментария
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

	$j("#show-comment-form").click(function(){
		
		if ($j.browser.msie) {
			$j("#comment-form").show();
			$j(".comment-bg").show();
		}
		
		else 
			$j("#comment-form").fadeIn(500);
			
	});
	
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//	Закрытие формы комментария
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

	$j("#comment-form .close").click(function(){
	
		if ($j.browser.msie) {
			$j(this).parent().hide();
			$j(".comment-bg").hide();
		}	
		else 
			$j(this).parent().fadeOut(500);
		
	});
	
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//	Очистка полей формы комментария
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

	$j("#comment-name").focus(function(){
		if ($j(this).val()=="Ваше имя")
			$j(this).val("");
	});
	
	$j("#comment-email").focus(function(){
		if ($j(this).val()=="Электронная почта")
			$j(this).val("");
	});
	
	$j("#comment-text").focus(function(){
		if ($j(this).val()=="Текст отзыва")
			$j(this).val("");
	});
	
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//	Отправка сообщения
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	
	$j("#comment-send").click(function(){
		
		var id_cat 	= $j(this).parent().parent().find("#comment-cat").val();
		var name 	= $j(this).parent().parent().find("#comment-name").val();
		var email 	= $j(this).parent().parent().find("#comment-email").val();
		var text 	= $j(this).parent().parent().find("#comment-text").val();
		
		if ((id_cat!="") && (id_cat>0) && (name!="") && (name!="Ваше имя") && (email!="") && (email!="Электронная почта") && (text!="") && (text!="Текст отзыва")) {
			
			if (is_email(email)) {
			
				$j.ajax({
					
					url: "/admin/modules/module/block/guestbook/handler/message-add.handler.php",
					type: "POST",
					dataType: "json",
					data: ({
						id_cat 	: id_cat,
						name	: name,
						email	: email,
						text	: text
					}),
						
					success: function(response){
							
						if (response.result=="success") {
							alert("Спасибо. Ваш отзыв успешно добавлен и будет опубликован после одобрения администратором.");
							$j("#comment-form input:text,#comment-form textarea").val("");												
						}
						else 
							if (response.result=="error")
								alert(response.text);
							/*else
								alert(response);*/
					},
						
					error: function(XMLHttpRequest, textStatus, errorThrown) {
								
						//alert(textStatus);
					}
				});
			}
			else {
				alert("Пожалуйста, введите правильный email.");
			}
		}
		else {
			alert("Пожалуйста, заполните все поля формы.");
		}
		
		return false;
	});
	
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//	Открытие окна с рецептом
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	
	$j("a.menu-item-name").click(function(){
		
		var id_item = $j(this).parent().find("[name=id_item]").val();
		
		if (id_item > 0)
			
			$j.ajax({
				
				url: "/admin/modules/module/block/menu/handler/item-get-details.handler.php",
				type: "POST",
				dataType: "json",
				data: ({
					id_item : id_item
				}),
					
				success: function(response){
						
					if (response.result=="success") {
							
						if (response.text.recipe > 0) {
							
							var div = $j("#recipe-window");
							$j("html:not(:animated)"+( ! $j.browser.opera ? ",body:not(:animated)" : "")).animate({scrollTop:0});
							
							$j("img", div).attr("src", response.text.image).attr("alt", response.text.name);
							$j("p.name", div).text(response.text.name);
							$j("div.dish-text", div).html(response.text.description);
							
							if ($j.browser.msie)
								div.show();
							else
								div.fadeIn(500);
						}						
					}													
				},
					
				error: function(XMLHttpRequest, textStatus, errorThrown) {
							
					//alert(textStatus);
				}
			});
	});

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//	Закрытие окна с рецептом
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

	$j("div.form_bg > a.close").click(function(){
	
		if ($j.browser.msie)
			$j(this).parent().parent().hide();
		else
			$j(this).parent().parent().fadeOut(500);
			
	});

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//	Показать окно заказа столиков
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

	$j("#show-plan, #book-a-table").click(function(){
	
		if ($j.browser.msie)
			$j("#plan").show();
		else 
			$j("#plan").fadeIn(500);
			
		$j("html:not(:animated)"+( ! $j.browser.opera ? ",body:not(:animated)" : "")).animate({scrollTop:0});
		
	});
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

	$j("#plan").click(function(e){
	
		if(e.target.className==e.currentTarget.className)
		{
		if ($j.browser.msie)
			$j("#plan").hide();
		else 
			$j("#plan").fadeOut(500);
			
		$j("html:not(:animated)"+( ! $j.browser.opera ? ",body:not(:animated)" : "")).animate({scrollTop:0});
		}
	});
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//	Наведение на столик
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////	
	
	/*$j("div.brown").live("mouseover", function(){		
		$j(this).removeClass("brown").addClass("red");
	});
	
	$j("div.red").live("mouseout", function(){		
		if ($j(".resform", this).length == 0)
			$j(this).removeClass("red").addClass("brown");
	});*/
	
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//	Показать форму заказа столиков
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////	
	
	$j("div.brown").live("click", function(){
		
		//$j(this).removeClass("red").addClass("brown")
		$j("div.red").removeClass("red").addClass("brown");
		$j(this).removeClass("brown").addClass("red")
		$j("div.resform").appendTo(this).show();
		$j(".shadow1").appendTo(this).show();
	});
	
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//	Скрыть форму заказа столиков
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

	$j(".resform .close").live("click", function(){
		
		$j(this).parent().hide();
		$j(this).parent().parent().removeClass("red").addClass("brown");	
		$j(".shadow1").hide();	
	});
	
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//	Показать окно панорамы
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

	$j("#show-panorama").click(function(){
	
		if ($j.browser.msie)
			$j("#tour1").show();
		else 
			$j("#tour1").fadeIn(500);
		
		$j("html:not(:animated)"+( ! $j.browser.opera ? ",body:not(:animated)" : "")).animate({scrollTop:0});
		return false;
	});

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//	Закрыть окна панорамы
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

	$j(".form-bg .frame a.close").click(function(e){
	
		if(e.target.className==e.currentTarget.className)
		{
		if ($j.browser.msie )
			$j(this).parent().parent().parent().hide();
		else
			$j(this).parent().parent().parent().fadeOut(500);
		}
		return false;
		
	});
	
	$j(".tour").click(function(e){

		if(e.target.className==e.currentTarget.className)
		{
		if ($j.browser.msie)
			$j(".tour").hide();
		else
			$j(".tour").fadeOut(500);
		}
		return false;
	});
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//	Прокрутка панорамы
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

	if ($j("#tour1").length > 0) {
		
		var container1 = $j("#tour1 div.panorama");
		var wrap1 = $j("#tour1 div.nav");
		var img1 = $j("img", container1);
		
		var Width1 = 1419 - 686;
		
		$j(".slider", wrap1).slider({
			min: 0,
			max: Width1,
			handle: ".ui-slider-handle",
			stop: function (event, ui) {
				img1.stop().animate({"left" : ui.value * -1}, 100);
			},
			change: function (event, ui) {
				img1.stop().animate({"left" : ui.value * -1}, 100);
			},
			slide: function (event, ui) {
				img1.stop().css("left", ui.value * -1);
			}
		});
	}
	
	if ($j("#tour2").length > 0) {
		
		var container2 = $j("#tour2 div.panorama");
		var wrap2 = $j("#tour2 div.nav");
		var img2 = $j("img", container2);
		
		var Width2 = 1388 - 686;
		
		$j(".slider", wrap2).slider({
			min: 0,
			max: Width2,
			handle: ".ui-slider-handle",
			stop: function (event, ui) {
				img2.stop().animate({"left" : ui.value * -1}, 100);
			},
			change: function (event, ui) {
				img2.stop().animate({"left" : ui.value * -1}, 100);
			},
			slide: function (event, ui) {
				img2.stop().css("left", ui.value * -1);
			}
		});
	}
	
	if ($j("#tour3").length > 0) {
		
		var container3 = $j("#tour3 div.panorama");
		var wrap3 = $j("#tour3 div.nav");
		var img3 = $j("img", container3);
		
		var Width3 = 821 - 686;
		
		$j(".slider", wrap3).slider({
			min: 0,
			max: Width3,
			handle: ".ui-slider-handle",
			stop: function (event, ui) {
				img3.stop().animate({"left" : ui.value * -1}, 100);
			},
			change: function (event, ui) {
				img3.stop().animate({"left" : ui.value * -1}, 100);
			},
			slide: function (event, ui) {
				img3.stop().css("left", ui.value * -1);
			}
		});
	}
	
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//	Переключение на следующую/предыдущую панораму
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	
	$j("div.next a").click(function(){
						
		if ($j("#tour1").css("display")!="none") {
			$j("#tour1").hide();
			$j("#tour2").show();
		}
		else {
			if ($j("#tour2").css("display")!="none") {
				$j("#tour2").hide();
				$j("#tour3").show();
			}
			else {
				if ($j("#tour3").css("display")!="none") {
					$j("#tour3").hide();
					$j("#tour1").show();
				}
			}
		}
		return false;
	});
	
	$j("div.prev a").click(function(){
					
		if ($j("#tour1").css("display")!="none") {
			$j("#tour1").hide();
			$j("#tour3").show();
		}
		else {
			if ($j("#tour2").css("display")!="none") {
				$j("#tour2").hide();
				$j("#tour1").show();
			}
			else {
				if ($j("#tour3").css("display")!="none") {
					$j("#tour3").hide();
					$j("#tour2").show();
				}
			}
		}
		return false;
	});	

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//	Нажатие на правую/левую стрелку прокрутки панорамы
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

	$j("a.to-left").mousedown(function(){	
		MoveLeft(this);	
		return false;
	});
									
	$j("a.to-right").mousedown(function(){	
		MoveRight(this);
		return false;
	});
	
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
});

var speed = 15;

function MoveLeft(Obj) {
	
	var sldr 	= $j(Obj).parent().find(".slider .ui-slider-handle");
	var img 	= $j(Obj).parent().parent().parent().parent().find(".panorama img");
	
	var sldr_left 	= parseInt(sldr.css("left"));
	var img_width 	= parseInt(img.css("width"));
		
	var timeout = parseInt(img_width/speed) * sldr_left; 
		
	sldr.stop().animate({ 
		left: "0%"
	}, timeout );
	
	img.stop().animate({ 
		left: "0"
	}, timeout );
	
}

function MoveRight(Obj) {
	
	var sldr 	= $j(Obj).parent().find(".slider .ui-slider-handle");
	var img 	= $j(Obj).parent().parent().parent().parent().find(".panorama img");
	
	var sldr_left 	= parseInt(sldr.css("left"));
	var img_width 	= parseInt(img.css("width"));
	var pan_width 	= parseInt(img.parent().css("width"));
	
	var timeout = parseInt(img_width/speed) * (100-sldr_left); 
		
	sldr.stop().animate({ 
		left: "100%"
	}, timeout );
	
	img.stop().animate({ 
		left: "-"+(img_width-pan_width)+"px"
	}, timeout );
}

function is_email(email) {
	
	reg = /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/;
	
	return email.match(reg);
}

function places(){	
	$j('.active-area').css('opacity','0.5');
	block = $j('#map');	
	wrap = $j('.map');
	mini = $j('.active-area');	
	block.hover(
		function(){		
		},
		function(){
			$j(this).unbind('mousemove').removeClass('cmove');
		}
	);	
	block.bind('mousedown', function(def) {
		if (!block.hasClass('cmove')) {
			block.addClass('cmove');
		}
		var sx = def.pageX - block.get(0).offsetLeft;
		var sy = def.pageY - block.get(0).offsetTop;

		$j(this).bind('mousemove', function(neww) {	
		var cLeft = neww.pageX - sx;
		var cTop =  neww.pageY - sy;
		if (cLeft < 0) {
			var mw = (block.width() - wrap.width()) * (-1);
			if (cLeft <= mw) {
				block.css('left', mw + 'px');
				mini.css('left', -mw / delt + 'px');
			}
			else 
			{
				block.css('left', cLeft + 'px');
				mini.css('left', -cLeft / delt + 'px');
			}
		}
		else 
		{
			block.css('left', '0px');
			mini.css('left', '0px');
		}
		if (cTop < 0) {
			var mw = (block.height() - wrap.height()) * (-1);
			if (cTop <= mw) {
				block.css('top', mw + 'px');
				mini.css('top', -mw / delt + 'px');
			}
			else 
			{
				block.css('top', cTop + 'px');
				mini.css('top', -cTop / delt + 'px');
			}
		}
		else 
		{
			block.css('top', '0px');
			mini.css('top', '0px');
		}
		}).bind('mouseup', function() {
			$j(this).unbind('mousemove').removeClass('cmove');
		});
	}).bind('mouseup', function() {
		$j(this).unbind('mousemove').removeClass('cmove');
	});
	miniq();
	return false;
}

function miniq(){	
	blockq = $j('.active-area');	
	wrapq = $j('.map-small');
	miniq = $j('#map');
	
	blockq.hover(
		function(){		
		},
		function(){
			$j(this).unbind('mousemove').removeClass('cmove');
		}
	);
	
	blockq.bind('mousedown', function(def) {
		if (!blockq.hasClass('cmove')) {
			blockq.addClass('cmove');		
		}
		var sxq = def.pageX - blockq.get(0).offsetLeft;
		var syq = def.pageY - blockq.get(0).offsetTop;

		$j(this).bind('mousemove', function(neww) {	
		var cLeftq = neww.pageX - sxq;
		var cTopq =  neww.pageY - syq;
		if (cLeftq > 0) {
			var mwq = (blockq.width() - wrapq.width()) * (-1);
			if (cLeftq >= mwq) {
				blockq.css('left', mwq + 'px');
				miniq.css('left', -mwq * delt + 'px');
			}
			else 
			{
				blockq.css('left', cLeftq + 'px');
				miniq.css('left', -cLeftq * delt + 'px');
			}
		}
		else 
		{
			blockq.css('left', '0px');
			miniq.css('left', '0px');
		}
		if (cTopq > 0) {
			var mwq = (blockq.height() - wrapq.height()) * (-1);
			if (cTopq >= mwq) {
				blockq.css('top', mwq + 'px');
				miniq.css('top', -mwq * delt + 'px');
			}
			else 
			{
				blockq.css('top', cTopq + 'px');
				miniq.css('top', -cTopq * delt + 'px');
			}
		}
		else 
		{
			blockq.css('top', '0px');
			miniq.css('top', '0px');
		}
		}).bind('mouseup', function() {
			$j(this).unbind('mousemove').removeClass('cmove');
		});
	}).bind('mouseup', function() {
		$j(this).unbind('mousemove').removeClass('cmove');
	});
		
}








