var pointerOverItemMenu = false;
var isMenuOpened = false;
var mainMenuDelay = 500;
var browserName;

var langPrefixs = {
	'ru': {
		header: "Типы анализа",
		photo: "На фото:",
		scheme: "На схеме:"
	},
	'en': {
		header: "Types of analysis",
		photo: "Photo:",
		scheme: "Scheme:"
	}
};

if ("object" == typeof(hs)) {

	hs.outlineType = null;
	hs.wrapperClassName = 'colored-border';

	hs.dimmingOpacity = 0.75;

	/*
	if ((navigator.userAgent.indexOf("Opera") !=-1) && (navigator.appName == "Opera")) {
		hs.dimmingOpacity = false;
	}
	 */

	hs.allowSizeReduction = false;
	hs.align = 'auto';

	if (IE) {
		hs.transitionDuration = 0;
		hs.restoreDuration = 0;
		hs.expandDuration = 0;
	}

	//hs.headingEval = 'this.thumb.title';

	hs.captionEval = 'this.thumb.title';

	hs.graphicsDir 			= '/design/images/';
	hs.expandCursor         = 'zoomin.cur';
	hs.restoreCursor        = 'zoomout.cur';

	hs.showCredits 			= false;
	hs.blockRightClick		= true;
	hs.lang.closeText 		= 'Закрыть';
	hs.lang.closeTitle 		= 'Закрыть (клавиша esc)';
	hs.lang.loadingText 	= 'загрузка';
	hs.lang.moveText 		= 'Переместить';
	hs.lang.moveTitle 		= 'Переместить окно по экрану';
	hs.lang.restoreTitle 	= 'Нажмите, чтобы закрыть';
	hs.lang.nextText 		= 'Следующая';
	hs.lang.previousText 	= "Предыдущая";

	hs.lang.playText = 'Слайд-шоу';
	hs.lang.playTitle = 'Запустить слайд-шоу (Пробел)';
	hs.lang.pauseText = 'Пауза';
	hs.lang.previousTitle = 'Предыдущая (клавиша влево)';
	hs.lang.nextTitle = 'Следующая (клавиша вправо)';

	if (hs.addSlideshow) hs.addSlideshow({
		interval: 4000,
		repeat: false,
		useControls: false,
		fixedControls: 'fit',
		overlayOptions: {
			opacity: 1,
			position: 'bottom right'
		}
	});

}


$(document).ready(
	function() {

		/* версия браузера */
		$.each($.browser, function(i, val){
			if (true === val) {
				browserName = i;
				if ("msie" == browserName
					&&
					!"6.0" == $.browser.version
				) {
					browserName = "msie78"
				}
			}
		});

		/* флеш главной страницы */
		try {
			var metaflash = $('#metaflash').flash(null,
			{
				version: 7
			},
			function(htmlOptions){
				var $this = $(this);
				htmlOptions.src = "/files/flash/animation-main-5.swf",
				htmlOptions.width = 1000;
				htmlOptions.height = 329;
				htmlOptions.wmode = "transparent",
				htmlOptions.menu = "false",
				htmlOptions.swliveconnect = "true",
				htmlOptions.id = "metaflash_object",
				htmlOptions.name = "metaflash_object",
				htmlOptions.allowScriptAccess = "always";
				$this.addClass('flash-replaced').prepend($.fn.flash.transform(htmlOptions));
			}
			);
		} catch(e) {}

		/* скроллинг главной страницы */
		$("#main-scroll").slider({
			min: 1,
			max: 4,
			change: function(event, ui) {
				thisMovie("metaflash_object").SetVariable("current_label", ui.value);
				thisMovie("metaflash_object").play();
			}
		});

		/* скроллинг главной страницы */
		$("#calendar-scroll").slider({
			min: 1,
			max: 183,
			change: function(event, ui) {
			},
			slide: function(event, ui) {
				$("#calendar").css("left", -ui.value)
			}
		});

		/* карусель главной страницы */
		$('#carousel').jcarousel({
			scroll: 1,
			animation: "slow",
			buttonNextHTML: "<div><div class='control button-scroll_right'></div></div>",
			buttonPrevHTML: "<div><div class='control button-scroll_left'></div></div>"
		});

		/* назначение событий на подсказки кадров на главной */
		$("#splash-frames li").click(function(){
			var frame_index = $("#splash-frames li").index(this) + 1;
			if (frame_index != $("#main-scroll").slider('value')) {
				$("#main-scroll").slider('value', $("#splash-frames li").index(this) + 1);
			}
		});

		/* формирование списка новостей */
		// $("#folding-list").listFolding();

		/* формирование главного всплывающего меню */
		$("#main-menu").mainMenu();

		/* формирование постраничной галереи */
		$("#testing-gallery").gallery({
			title_prefs: langPrefixs[lang].scheme
		});

		$("#news-gallery").gallery({
			title_prefs: langPrefixs[lang].photo
		});

		/*
		$("#chromatograms-list").linkGallery({
			header: langPrefixs[lang].header,
			title_prefs: langPrefixs[lang].scheme
		});
	 */

		$("#chromatograms-list").chromatogramsGallery({
			header: langPrefixs[lang].header,
			title_prefs: langPrefixs[lang].scheme
		});

		//$("#testing-gallery").largeGallery();

		/* формирование большой галереи */
		$("#public-gallery").largeGallery();

		/*
		$("#crystallux-4000m-inside").schemas({
			imagesExt: "png",
			imagesPath: "/files/images/catalog/crystallux-4000m/schemes/inside/"
		});
	 */

		/* обработка тегов label в формах */
		try {
			label_collection = $("form.hints label");
			$.each(label_collection, function(i, object){
				labelInput = $(object).attr("for");
				var labelInputRef = $("#" + labelInput)

				$(labelInputRef).focus(function(){
					$(object).hide();
				});
				$(labelInputRef).blur(function(){
					if (!$(labelInputRef).val()) {
						$(object).show();
					}
				});
			});
		} catch(e) {

		}


		/*
	 * • Настройка формы обратной связи
	 */
		try {
			$("#feedback").submit(function() {
				$(this).ajaxSubmit({
					type: "POST",
					dataType:  'json',
					url: "/feedback/",
					beforeSubmit: showRequest,
					success: showResponse,
					notsuccess: errorAjax,
					timeout: 3000
				});
				return false;
			});
		} catch(e) {
		}


		/*
	 * • Настройка формы бланка заказа
	 */
		try {
			$("#order").submit(function() {
				$(this).ajaxSubmit({
					type: "POST",
					dataType:  'json',
					url: "/order/blank/",
					beforeSubmit: showRequest,
					success: showResponse,
					notsuccess: errorAjax,
					timeout: 3000
				});
				return false;
			});
		} catch(e) {
		}

		/* форма заполнения заказа */
		try {
			if ($("#order").attr("id")) {
				/* обработка "кнопок" */
				var radioInputList = $("#order").find("input[type=radio]");

				$(radioInputList).each(function(){
					$(this).click(function(){
						$(radioInputList).each(function(){
							if (true == this.checked) {
								$(this).parent().addClass("active");
							} else {
								$(this).parent().removeClass("active");
							}
						});
						orderBlankScenatio({
							speed: "slow"
						});
					});
				});
				orderBlankScenatio({});
			}
		} catch(e) {}
		/* конец формы заполнения заказа */

		$("#lang").lang();
	}
	);


/* обработка сценария */
function orderBlankScenatio(options){
	$("#part-3").test({
		checkers: [
		"#part-2-yes"
		],
		speed: options.speed
	});

	$("#part-4").test({
		checkers: [
		"#part-2-no"
		],
		speed: options.speed
	});

	$("#part-5").test({
		checkers: [
		"#part-2-no"
		],
		speed: options.speed
	});

	$("#part-6").test({
		checkers: [
		"#part-2-no", "#part-5-yes"
		],
		speed: options.speed
	});

	$("#part-7").test({
		checkers: [
		"#part-2-no", "#part-5-no"
		],
		speed: options.speed
	});

	$("#part-9").test({
		checkers: [
		"#part-8-yes"
		],
		speed: options.speed
	});

	$("#part-10").test({
		checkers: [
		"#part-8-no"
		],
		speed: options.speed
	});

	$("#part-12").test({
		checkers: [
		"#part-11-no"
		],
		speed: options.speed
	});

	$("#part-13").test({
		checkers: [
		"#part-11-yes"
		],
		speed: options.speed
	});

	$("#part-14").test({
		checkers: [
		"#part-11-yes", "#part-13-no"
		],
		speed: options.speed
	});

	$("#part-16").test({
		checkers: [
		"#part-15-no"
		],
		speed: options.speed
	});

	$("#part-18").test({
		checkers: [
		"#part-17-no"
		],
		speed: options.speed
	});

	$("#part-20").test({
		checkers: [
		"#part-19-yes"
		],
		speed: options.speed
	});

	$("#part-21").test({
		checkers: [
		"#part-19-yes"
		],
		speed: options.speed
	});

	$("#part-23").test({
		checkers: [
		"#part-22-yes"
		],
		speed: options.speed
	});

	$("#part-25").test({
		checkers: [
		"#part-24-yes"
		],
		speed: options.speed
	});

	$("#part-26").test({
		checkers: [
		"#part-24-yes"
		],
		speed: options.speed
	});

	$("#part-28").test({
		checkers: [
		"#part-27-no"
		],
		speed: options.speed
	});

}

$.fn.test = function(options){
	var checkerflag = true;
	for (checker_item in options.checkers) {
		checkerflag = checkerflag && $(options.checkers[checker_item]).attr("checked");
	}

	if (checkerflag) {
		$(this).slideDown(options.speed);
	} else {
		$(this).slideUp(options.speed);
	}
}
/* конец обработки сценария */

$.fn.lang = function(options){
	var container = this;

	$(container).hover(function(){
		$(container).toggleClass("rolled");
		$(container).children().show();
	}, function(){
		$(container).toggleClass("rolled");
		$(container).children(".passive").hide();
	});

}

$.fn.schemas = function(options){
	var container = this;
	var list = $(this).children("ul").children();

	var overlay = $("<div/>")
	.appendTo($(container).children(".base"))
	.attr("class", "overlay");

	if (IE) {
		$(overlay).height($(container).height());
	}

	if (0 <= list.length) {
		list.each(function(){
			$(this).children("span").click(function(){
				var li_item = $(this).parent();
				var index = 1 + $(list).index(li_item);

				resetClassInCollection($(li_item).parent().children(), "active");
				$(li_item).addClass("active");

				$(overlay).hide("slow", function(){
					var overlayFileName = options.imagesPath + index + "." + options.imagesExt;
					if (IE) {
						$(this).css("filter", "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + overlayFileName + "',sizingMethod=crop));");
					} else {
						$(this).css("backgroundImage", "url('" + overlayFileName + "')");
					}
					$(this).show("slow");
				});

			});
		});
	}
}

function resetClassInCollection(collection, className) {
	if (0 <= collection.length) {
		$(collection).each(function(){
			$(this).removeClass(className);
		});
	}
	return true;
}

$.fn.scrollList = function(options){
	var container = this;
	var scroll_container = this;
	var list = $(this).children();
	if (0 < list.length) {
		var wh = 1;
		i = 0;
		list.each(function(){
			i++;
			wh += 25 + ($(this).children("a").width() || $(this).children("span").width());
		});
	}

	$(container).width(wh);
	container = container.wrap('<div></div>').parent().attr("class", "inline-list-container " + browserName);

	var wd = wh - $(container).width();

	// выясняем центр позиции активного пункта
	if (0 <= wd) {
		var activeItemCenter = $(scroll_container).children(".active").position().left + ($(scroll_container).children(".active").width() / 2);
		var css_left = -activeItemCenter + ($(container).width() / 2);

		if (0 <= css_left) {
			css_left = 0;
		}
		if (css_left < -(wh - $(container).width())) {
			css_left = -(wh - $(container).width());
		}

		$(scroll_container).css("left", css_left);

		// добавляем кнопки листания
		$("<div />")
		.appendTo(container)
		.attr("class", "jcarousel-prev-horizontal");

		$("<div />")
		.appendTo(container)
		.attr("class", "jcarousel-next-horizontal");

		$(container).after("<div class='icon scroll-area'><div id='inline-list-scroll' class='scroll' /></div>");

		$("#inline-list-scroll").slider({
			min: 1,
			max: wd,
			value: -css_left,
			change: function(event, ui) {
			},
			slide: function(event, ui) {
				$(scroll_container).css("left", -ui.value);
			}
		});
	}

}

$.fn.largeGallery = function(options){
	var container = this;
	var scroll_container = this;
	var list = $(this).children();

	if (0 < list.length) {
		var wh = 1;
		i = 0;
		list.each(function(){
			wh += 4 + this.offsetWidth + parseInt(($(this).css("margin-left"))) + parseInt(($(this).css("margin-right")));

			$(this).find("a").click(function(){
				$(this).parent().parent().children().removeClass("active");
				$(this).parent().addClass("active");
				$(imageContainer).attr("src", this.href);
				$(captionContainer).html("<strong>На фото:</strong> " + $(this).find("img").attr("title"));

				return false;
			});
		});
	}

	$(container).width(wh);

	container = container.wrap('<div></div>').parent().attr("class", "gallery-container " + browserName);

	imageContainer = $("<img/>").insertAfter($(container)).attr("height", 436);
	captionContainer = $("<p/>").insertAfter($(container)).attr("class", "gallery-caption");

	if ("msie" == browserName) {
		$(imageContainer).wrap(
			$("<div>").addClass("ie_image_wrapper")
			);
	}

	/* загрузка первой картинки */
	$(imageContainer).attr("src", $(list[0]).find("a").attr("href"));
	$(captionContainer).html("<strong>На фото:</strong> " + $(list[0]).find("a img").attr("title"));
	$(list[0]).addClass("active");

	var wd = wh - $(container).width();

	/* добавляем кнопки листания */
	if (0 <= wd) {
		$("<div />")
		.appendTo(container)
		.attr("class", "jcarousel-next jcarousel-next-horizontal dark");

		$("<div />")
		.appendTo(container)
		.attr("class", "jcarousel-prev jcarousel-prev-horizontal dark");

		$(container).after("<div class='icon scroll-area'><div id='gallery-scroll' class='scroll' /></div>");

		$("#gallery-scroll").slider({
			min: 1,
			max: wd,
			change: function(event, ui) {
			},
			slide: function(event, ui) {
				$(scroll_container).css("left", -ui.value);
			}
		});
	}

}

$.fn.linkGallery = function(options) {
	var container = this;
	var list = $(this).children();

	var prefs = (options.title_prefs) ? options.title_prefs : "Подпись:";

	container = container.wrap("<div>").parent().attr("class", "gallery-page-container " + browserName);
	$(container).prepend($("<h2>").text(options.header));

	var imageCaption = $("<p>").prependTo(container).addClass("gallery-caption");
	var imageContainer = $("<img>").prependTo(container).addClass("gallery-image");

	$(imageContainer).attr("src", $(list[0]).children("a").attr("href"));
	$(imageCaption).html("<strong>" + prefs + "</strong> " + $(list[0]).children("a").attr("title"));

	$(list[0]).addClass("active");

	if (0 < list.length) {
		$.each(list, function(){
			link = $(this).children("a").click(function(){
				$(this).parent().parent().children().removeClass("active");
				$(this).parent().addClass("active");
				$(imageContainer).attr("src", this.href);
				$(imageCaption).html("<strong>" + prefs + "</strong> " + $(this).attr("title"));
				return false;
			});
		});
	}

}

$.fn.chromatogramsGallery = function(options) {
	var container = this;
	var list = $(this).children();

	container = container.wrap('<div></div>').parent().attr("class", "gallery-page-container " + browserName);

	$("h3").prependTo(container);

	var largeComment = $("<div>")
	.prependTo(container)
	.addClass("comment");

	var largeScheme = $("<div>")
	.prependTo(container)
	.addClass("large-scheme");

	var scrollArea = $("<ul>")
	.prependTo(container)
	.addClass("inline-gallery")
	.addClass("usage")
	.wrap("<div class='scrollbox'>");

	$.each(list, function(key, item){
		$(item).children("a").click(function(){
			// переносим превьюшки в контейнер
			$(scrollArea).copyThumbsList({
				list: item,
				large: largeScheme,
				comment: largeComment,
				prefs: options.title_prefs
			});

			$(list).parent().children(".active").removeClass("active");
			$(this).parent().addClass("active");
			return false;
		});
		// прячем дочерние ссылки
		$(item).children("ul").hide();
	});

	var prefs = (options.title_prefs) ? options.title_prefs : "Подпись:";

	$(scrollArea).copyThumbsList({
		large: largeScheme,
		comment: largeComment,
		prefs: options.title_prefs,
		list: $(list[0]).addClass("active")
	});
}

$.fn.copyThumbsList = function(options) {
	var container = this;
	var list = options.list;
	var comment_box = options.comment;
	var large = $("<img>")
	.appendTo(
		$(options.large).empty()
		);

	var source_list = $(list).children("ul").children("li");

	$(container).css("visibility", "hidden").empty();

	// копируем превьюшки из ссылок в контейнер
	$.each(source_list, function(key, item){
		var src_image = new Image();
		var src_link = $(item).children("a").attr("href");

		var tb_link = $(item).children("a").attr("href").replace(".png", "_tb.png");
		var comment = $(item).children("a").attr("title");

		var thumb_link = $("<a>")
		.append(
			$("<img>")
			.attr("src", tb_link)
			)
		.attr("href", src_link)
		.click(function(){
			$(large)
			.attr("src", src_link);

			$(comment_box).html(
				"<strong>" + options.prefs + "</strong> " + comment
				);

			$(this).parent().parent().children(".active").removeClass("active");
			$(this).parent().addClass("active");
			return false;
		});

		$(container).append(
			$("<li>")
			.append(
				$("<span>").addClass("arrow")
				)
			.append(thumb_link)
			.addClass(((0 == key) ? "active" : ""))
			);

		if (0 == key) {
			$(comment_box).html(
				"<strong>" + options.prefs + "</strong> " + $(item).children("a").attr("title")
				);
			$(large).attr("src", $(item).children("a").attr("href"));
		}

	});

	$(container).width(1000);
	$(container).css("visibility", "visible");
}

$.fn.gallery = function(options){
	var container = this;
	var scroll_container = this;
	var list = $(this).children();

	var prefs = (options.title_prefs) ? options.title_prefs : "Подпись:";

	if (0 < list.length) {
		var wh = 1;
		i = 0;
		list.each(function(){
			i++;
			wh += 10 + $(this).width() + parseInt(($(this).css("margin-left"))) + parseInt(($(this).css("margin-right")));
		});
	}

	container = container.wrap('<div></div>').parent().attr("class", "gallery-page-container " + browserName);
	$(scroll_container).width(wh);

	$(container).css("visibility", "hidden");

	var imageContainer = $("<img/>").appendTo(container).attr("class", "gallery-image");//.attr("height", 286);
	var captionContainer = $("<p/>").appendTo(container).attr("class", "gallery-caption");

	$(imageContainer).attr("src", $(list[0]).find("a").attr("href"));
	$(captionContainer).html("<strong>" + prefs + "</strong> " + $(list[0]).find("a img").attr("title"));

	$(list[0]).addClass("active");

	if (0 < list.length) {
		$.each(list, function(i){
			link = $(this).find("a").click(function(){
				$(this).parent().parent().children().removeClass("active");
				$(this).parent().addClass("active");
				$(imageContainer).attr("src", this.href);
				$(captionContainer).html("<strong>" + prefs + "</strong> " + $(this).find("img").attr("title"));
				return false;
			});
		});
	}

	wd = wh - $(container).width();

	if (0 <= wd) {
		$("<div />")
		.appendTo(container)
		.attr("class", "jcarousel-prev-horizontal page");

		$("<div />")
		.appendTo(container)
		.attr("class", "jcarousel-next-horizontal page");

		$(scroll_container).after("<div class='icon scroll-area'><div id='inline-thumbs-scroll' class='scroll' /></div>");

		$("#inline-thumbs-scroll").slider({
			min: 1,
			max: wd,
			change: function(event, ui) {
			},
			slide: function(event, ui) {
				$(scroll_container).css("left", -ui.value);
			}
		});
	}

	$(container).css("visibility", "visible");

}

$.fn.mainMenu = function(options){
	var container = this;
	var list = $(this).children(".bar");

	$.each(list, function(){
		$(this).hover(function(){
			pointerOverItemMenu = true;
			var object = this;
			if (!isMenuOpened
				&&
				pointerOverItemMenu
				) {
				isMenuOpened = true;
				$(object).attr("id", "active");

				// добавлены из-за глюка в ie6 //
				$(object).find(".submenu").show();

				$(object).find(".submenu").hover(function(){}, function(){
					isMenuOpened = false;
					$(object).removeAttr("id");

					// добавлены из-за глюка в ie6 //
					$(this).hide();
				});
			}
		/*
			delay(this, function(object){
				if (!isMenuOpened
					&&
					pointerOverItemMenu
				) {
					isMenuOpened = true;
					$(object).addClass("active");
					$(object).find(".submenu").hover(function(){}, function(){
						isMenuOpened = false;
						$(object).removeClass("active");
					});
				}
			});
			 */
		}, function(){
			pointerOverItemMenu = false;
		});
	});
}

function delay(object, callback) {
	var timeOut = setTimeout(callback, mainMenuDelay, object);
}


$.fn.listFolding = function(options){
	var options = $.extend({});

	var container = this;
	var list = $(this).children();

	var counter = 0;
	var total = list.length - 1;

	container = container.wrap('<div></div>').parent().attr("class", "news-container");

	/* добавляем кнопки листания */
	var news_button_left = $("<div />")
	.appendTo(container)
	.attr("class", "control button-scroll_left news-scroll-prev")
	.click(function(){
		$(container).news_scroll(-1);
	})
	.addClass("disable");

	var news_button_right = $("<div />")
	.appendTo(container)
	.attr("class", "control button-scroll_right news-scroll-next")
	.click(function(){
		$(container).news_scroll(1);
	});

	/* прячем все записи кроме указанной в counter */
	$.each(list, function(){
		if ($(list).index(this) != counter) {
			$(this).toggle();
		}
	});

	/* «прокручиваем» записи, согласно counter */
	$.fn.news_scroll = function(direction){
		counter += direction;
//console.log(counter, total);

        if (0 >= counter) {
			$(news_button_left).addClass("disable");
        } else {
            $(news_button_left).removeClass("disable");
        }
        if (total <= counter) {
			$(news_button_right).addClass("disable");
        } else {
            $(news_button_right).removeClass("disable");
        }

		if (counter < 0) {
			counter = 0;
			//$(news_button_left).addClass("disable");
			//return false;
		}

		if (counter > total) {
			counter = total;
			//$(news_button_right).addClass("disable");
			//return false;
		}

		$.each(list, function(){
		    //$(news_button_left).removeClass("disable");
		    //$(news_button_right).removeClass("disable");
			if ($(list).index(this) != Math.abs(counter)) {
				$(this).hide();
			} else {
				$(this).show();
			}
		});

	}
};

/*
 * • Обработка формы обратной связи
 */
function showRequest(formData) {
	$("#feedback #send-button").attr("disabled", "disabled");
	$("#feedback #formsend-icon img").css("visibility", "visible");
	return true;
}

function showResponse(responseText, statusText)  {
	if ("success" == statusText) {
		$("#feedback #send-button").attr("disabled", "");
		$("#feedback #formsend-icon img").css("visibility", "hidden");

		if (responseText.success) {
			$("#feedback").resetForm();
		}
		displayErrors(responseText, "#error_message");
		$("#scode-img").attr("src", "/getimage/contacts/?" + Math.random());
	}
}

function errorAjax(statusText) {
	alert("error = " + statusText);
}

function displayErrors(responseText, container_id) {
	$(container_id).empty();
	$.each(responseText, function(key, item) {
		$(container_id).append("<span class='error'>" + item + "</span>");
		$(container_id).append("<br/>");
	});
}

function thisMovie(movieName) {
	if (navigator.appName.indexOf("Microsoft") != -1) {
		return window[movieName]
	}
	else {
		return document[movieName]
	}
}

function objDisplay (obj) {
	var displayLine;
	for (var prop in obj) {
		displayLine += obj.name + "." + prop + " = " + obj[prop] + "<br>";
	}
	//alert(displayLine);
	document.write(displayLine);
}


