$(function() {

	/*
	 * Меню-слайдер на внутряках
	 */
	var sm = $('#slidermenu');
	sm.find('ul ul').not('.set').css('display','none');
	sm.find('a.slider').bind('click',function(){
		var setul = $(this).parent().find('ul');
		sm.find('ul ul').parent().find('ul').not(setul).slideUp();
		setul.slideToggle();
		return false;
	});

	/*
	 * is IE?
	 */
	var ie8 = $.browser.msie && /MSIE (8).+Win/.test(navigator.userAgent);
	var ie6 = $.browser.msie && /MSIE (6).+Win/.test(navigator.userAgent) && !/MSIE (7|8).+Win/.test(navigator.userAgent);

	/*
	 * Список сайтов
	 */
	if( $("#site-select").length ) {
		$("#site-select").find(".link a").bind("click", function(){
			$("#site-select").toggleClass("site-select-open");
			return false;
		});

		$("#site-select").find(".close").bind("click", function(){
			$("#site-select").removeClass("site-select-open");
			return false;
		});

		$("#all_site").bind("click", function(){
			$("#site-select").find(".close").trigger("click");
		});

		if(ie6) {
			$("#site-select").find(".link").hover( function(){
				$("#site-select").find(".link").addClass("hover_ie");
			}, function(){
				$("#site-select").find(".link").removeClass("hover_ie")
			});
		}
	}

	if ($("#content-window").length) {
		$("<img src='/images/insi-ing/window/others.png'>");
		$("<img src='/images/insi-ing/window/center.png'>");
		$("<img src='/images/insi-ing/window/center2.gif'>");

		$("#content-window-close").find("a").bind("click", function(){
			$("#content-window-text").attr("style", "").attr("class", "");
			$("#content-window").attr("style", "").attr("class", "").hide();
			return false;
		});

		$("#all_site").bind("click", function(){
			$("#content-window-close").find("a").trigger("click");
		});

		$(window).resize(function(){
  			if ($("#content-window").hasClass("fixed") && $("#content-window").is(":visible")) {
				var width = $(document).width();
				if($.browser.opera && parseInt($.browser.version) == 9) {
					width = window.innerWidth;
					if(width < 1000) {
						width = 1000;
					}
				}
				var left = (width - $("#content-window").width()) / 2;
				if(ie6 || ie8) {
					left -= 10;
				}
				left = left < 0 ? 0 : left;
				$("#content-window").css({left: left + "px"});
			}
		});
	}

	/*
	 * Быстровозводимые здания
	 */
	if ($("#building-about-link").length) {
		$("#building-about-link").bind("click", function(){
			$("#content-window-text").css({width: "750px"}).html( $("#about-window").html() )
			$("#content-window").addClass("fixed").css({top: "180px"}).show();
			$(window).trigger("resize");
			return false;
		});
	}

	/*
	 * Поиск
	 */
	if ($("#search-form").length) {
		var $input = $("#search-form").find("input[name='text']");
		var text = 'поиск по сайту';
		if(!$input.attr("value")) {
			!$input.attr("value", text)
		}
		$input.bind("focus", function(){
			if($input.attr("value") == text) {
				$input.attr("value", "");
			}
		});
		$input.bind("blur", function(){
			if($input.attr("value") == "") {
				$input.attr("value", text);
			}
		});
	}

	/*
	 * Поиск на внутренних
	 */
	if ($("#search").length) {
		$("#search").find("input[name='text']").focus();
	}

	/*
	 * Обратный звонок
	 */
	if ($("#get-call").length) {
		var get_call_window = false;
		$("#get-call").find("a").bind("click", function(){
			if (!get_call_window) {
				if (!get_call_window || get_call_window.closed) {
					get_call_window = window.open($(this).attr("href"), $(this).html(), "top=100,left=100,width=300,height=600,status=1,scrollbars=1");
				}
				get_call_window.focus();
			}
			return false;
		});
	}

	/*
	 * Фотогалерея
	 */
	if ($("#index-photogallery").length) {
		(function(){
			var $p = $("#index-photogallery");
			var isInner = $p.hasClass("inner");
			var $i_div = $p.find(".main_image");
			var $img1 = $($i_div.find("img")[1]);
			var $img2 = $($i_div.find("img")[0]);
			var $ul = $p.parent().find(".main_ul").find("ul");
			var $name = $p.find(".main_name").find("a");
			var imgWidth;
			var imgHeight;
			var imgWidthDelta;
			var imgHeightDelta;
			var moveEvent = false;
			var moveOffset;
			var widthStorage = false;
			var curImage = false;
			var imageObject;
			var isFirsRun = true;
			var runImage1State = 0;
			var runImage2State = 0;
			/*
			 * 0 - ничего не происходит
			 * 1 - анимация поставлена в очередь
			 * 2 - идет анимация
			 */

			$(window).resize(function(){
				if(ie6) {
					$p.hide();
				}

				if (isInner) {
					var width = $("#inner .left").find(".content").width();
					width -= ie6 ? 10: 0;
				}
				else {
					var width = $("#all_site").width() - 84;
				}
				if (widthStorage != width && curImage && imgWidth) {
					$p.attr("style", "");
					widthStorage = width;

					if (isInner) {
						width = width > 930 ? 930 : width;
						var height = 500;
						var max_width = 650;
					} else {
						width = width > 1200 ? 1200 : width;
						var height = Math.round(width * 0.300);
						var max_width = 916;

					}

					if (width > max_width || ie8 || ie6) {
						$p.css({
							width: width + "px",
							height: height + "px"
						});
						if (ie6) {
							$p.attr("style", "width:" + width + "px;height:" + height + "px;");
						}
					}

					imgWidthDelta = imgWidth - width;
					imgWidthDelta = imgWidthDelta < 0 ? 0 : Math.round(imgWidthDelta);
					imgHeightDelta = imgHeight - $p.height();
					imgHeightDelta = imgHeightDelta < 0 ? 0 : Math.round(imgHeightDelta);

					if (typeof moveOffset != "object") {
						$i_div.css({
							left: "-" + (imgWidthDelta / 2) + "px",
							top: "-" + (imgHeightDelta / 2) + "px"
						});
					}
					else {
						moveMouseMove();
					}

					if (imgWidth > width || imgHeight > height) {
						$p.addClass("is_move");
					}
					else {
						$p.attr("class", "");
					}

					$(window).trigger("resize");
				}

				if(ie6) {
					$p.show();
				}
			});

			var moveMouseMove = function(event){
				if (!runImage1State && !runImage2State) {
					var top = moveOffset.top;
					var left = moveOffset.left;
					if (event) {
						top += event.pageY - moveEvent.pageY;
						left += event.pageX - moveEvent.pageX;
					}
					top = top > 0 ? 0 : (top < -imgHeightDelta ? -imgHeightDelta : top);
					left = left > 0 ? 0 : (left < -imgWidthDelta ? -imgWidthDelta : left);
					$i_div.css({left: left + "px",top: top + "px"});
				}
				return false;
			};

			var moveMouseUp = function(){
				$(document).unbind("mousemove", moveMouseMove);
				$(document).unbind("mouseup", moveMouseUp);
				return false;
			};

			$p.bind("mousedown", function(event){
				if (!$p.hasClass("is_move")) {
					return;
				}
				/*moveEvent = event;
				moveOffset = $p.find(".main_image").position();

				$(document).bind("mousemove", moveMouseMove);
				$(document).bind("mouseup", moveMouseUp);*/
				return false;
			});

			/*
			 * Переключаем картинки
			 */
			loadImage = function(){
				var $a = $ul.find("li.current").find("a");
				var $i = $a.find("img");
				if($i.attr("big") != curImage || !curImage) {

					/*
					 * Функция вызывается при первой загрузки стартового изображения
					 * или каждый раз когда закончилась смена картинок
					 */
					var reloadImage = function(){
						if (isFirsRun) {
							isFirsRun = false;
						} else {
							if(runImage1State || runImage2State) {
								return;
							}
							var i = $img2.position();
							$i_div.css({left: i.left+"px", top: i.top+"px"});
							$img2.css({left: "0px", top: "0px"});
						}
						imgWidth = imageObject.width;
						imgHeight = imageObject.height;
						moveOffset = false;
						moveEvent = false;
						widthStorage = false;
						$(window).trigger("resize");
					}

					var imgFunc = function(){
						$name.attr("href", $a.attr("href")).html($a.attr("title"));
						imageObject = new Image();
						imageObject.onload = function() {
								if(imageObject.src == ("http://" + location.host + curImage) ) {
									if(runImage1State == 1) {
										$img2.attr("src", curImage);
									} else {
										runImage2State = 2;
										$img2.css({opacity: 0});
										$img2.attr("src", curImage);
										$img2.animate({opacity: 1}, {
											duration: "slow",
											complete: function(){
												runImage2State = 0
												$img2.css({opacity: ""});
												reloadImage();
											}
										});
									}

									if (isFirsRun) {
										reloadImage();
									} else {
										//Картинку поставили, ее надо отцентровать
										var left = imageObject.width - $p.width();
										left = left < 0 ? 0 : Math.round(left);
										var top = imageObject.height - $p.height();
										top = top < 0 ? 0 : Math.round(top);
										$img2.css({left: "-" + (left / 2) + "px", top: "-" + (top / 2) + "px"});
									}
								}
							};
						imageObject.src = curImage;
					};

					curImage = $i.attr("big");
					if (!isFirsRun) {
						if (!runImage1State && !runImage2State) {
							var i = $i_div.position();
							$img2.css({left: i.left+"px", top: i.top+"px"});
							$i_div.css({left: "0px", top: "0px"});
						}

						if (runImage2State == 2) {
							$img2.stop();
							$img1.css({
								opacity: $img2.css("opacity")
							}).stop();
						}
						if (runImage2State || !runImage1State) {
							var i = $img2.position();
							$img1.attr("src", $img2.attr("src")).css({left: i.left+"px", top: i.top + "px"});
							$img2.attr("src", "/images/blank.gif");
						}
						runImage1State = 1;
						setTimeout(function(){
							runImage1State = 2;
							$img1.stop().animate({
								opacity: 0
							}, {
								duration: "slow",
								complete: function(){
									runImage1State = 0;
									$img1.attr("src", "/images/blank.gif").css({opacity: ""});
									reloadImage();
								}
							});
						}, 100);

					}
					imgFunc();
				}
			};

			$ul.find("a").bind("click", function(){
				$li = $(this).parents("li");
				if(!$li.hasClass("current")) {
					$ul.find("li").removeClass("current");
					$li.addClass("current");
					loadImage();
				}
				return false;
			});

			loadImage();
		})();
	}

	/*
	 * Индивидуальное проектирование и изготовление зданий
	 */
	if ($("#type-builder").length) {
		(function(){
			$("#type-builder").find(".open-left").find("a").bind("click", function(){
				onOpenWindowClick($(this));
				return false;
			});

			$("#type-builder").find(".open-right").find("a").bind("click", function(){
				onOpenWindowClick($(this));
				return false;
			});

			$("#type-builder").find(".ul").find("a").hover(function(){
				var ul = $(this).parents("ul");
				var li = $(this).parents("li");
				var div = $(this).parents(".builder-window").find(".items");
				if(!li.hasClass("current")) {
					ul.find("li").removeClass("current");
					li.addClass("current");
					div.find(".item").removeClass("current");
					div.find(".item[item_id='"+ li.attr("item_id") +"']").addClass("current");
				}
			});

			var onOpenWindowClick = function($this) {
				var $builder = $this.parents(".builder-window");
				var $text_content = $builder.find(".items .current").find(".text");
				var builder_position = $builder.position().top + $builder.find(".items .current").find(".announce").find("img").position().top;

				var html = "";
				html += "<div class='type-builder-window'>";
				html +=	"	<div class='left'>";
				html +=	"		<img src='"+ $builder.find(".items .current").find(".announce").find("img").attr("src") +"'/>";
				html +=	"		<p>"+ $builder.find(".items .current").find(".announce").find("p").html() +"</p>";
				html +=	"		<div class='open-close'><a href='#' class='show'>Свернуть</a></div>";
				html +=	"	</div>";
				html +=	"	<div class='right'>"+ $text_content.html() +"</div>";
				html +=	"</div>";

				$("#content-window-text").css({width: $("#all_site").width() - 102 + "px"}).html( html );
				$("#content-window").addClass("fixed").css({top: builder_position + 0 + "px"}).show();
				$(window).trigger("resize");

				$("#content-window-text").find(".open-close").find("a").bind("click", function(){
					$("#content-window-close").find("a").trigger("click");
					return false;
				});

				return false;
			}

			if(ie6) {
				$("#type-builder").find(".right").find(".builder-window").css({zoom: 1});
			}
		})();
	}

	/*
	 * Построенные и новости
	 */
	if ($("#news").length) {
		(function(){
			if($.browser.msie && !ie8) {
				$(window).resize(function(){
					var width = $("#all_site").width() - 80;
					if (width > 1150) {
						var marginLeft = (width - 5 * 212) / 8;
					}
					else {
						var marginLeft = (width - 4 * 212) / 6;
					}
					var i = 0;
					$("#news").find(".build-ready ul li").each(function(){
						i++;
						if (width > 1150) {
							if (i == 5) { $(this).show(); }
							if (i > 5) { $(this).hide(); }
							if(i==1) { $(this).css({marginRight: marginLeft+"px"}); }
							if (i==5) { $(this).css({marginLeft: marginLeft+"px"}); }
							if(i > 1 && i < 5) { $(this).css({marginRight: marginLeft+"px", marginLeft: marginLeft+"px"}); }
						} else {
							if (i >= 5) { $(this).hide(); }
							if(i==1) { $(this).css({marginRight: marginLeft+"px"}); }
							if (i==4) { $(this).css({marginRight: "", marginLeft: marginLeft+"px"}); }
							if(i > 1 && i < 4) { $(this).css({marginRight: marginLeft+"px", marginLeft: marginLeft+"px"}); }
						}
					});

					if (width > 1075) {
						marginLeft = (width - 4 * 250) / 6;
					}
					else {
						marginLeft = (width - 3 * 250) / 4;
					}
					i = 0;
					$("#news").find(".news ul li").each(function(){
						i++;
						if (width > 1075) {
							if (i == 4) { $(this).show(); }
							if (i > 4) { $(this).hide(); }
							if(i==1) { $(this).css({marginRight: marginLeft+"px"}); }
							if (i==4) { $(this).css({marginLeft: marginLeft+"px"}); }
							if(i > 1 && i < 4) { $(this).css({marginRight: marginLeft+"px", marginLeft: marginLeft+"px"}); }
						} else {
							if (i > 3) { $(this).hide(); }
							if(i==1) { $(this).css({marginRight: marginLeft+"px"}); }
							if (i==3) { $(this).css({marginRight: "", marginLeft: marginLeft+"px"}); }
							if(i > 1 && i < 3) { $(this).css({marginRight: marginLeft+"px", marginLeft: marginLeft+"px"}); }
						}
					});
				});

				$(window).trigger("resize");
			}

			var $w = $("#news").find(".build-ready-window");

			$w.bind("mouseleave", function(){
				$w.attr("style", "").html("").hide();
			});

			$("#news").find(".build-ready ul li").hover(function(){
				var $this = $(this);
				var position = $this.offset();
				$w.html($this.html()).css({top: position.top - 1 + "px", left: position.left - 1 + "px"}).show();
			});

		})();
	}
});
