var player;
var navWidth = 29;
var tempNav = [];
var type;
var text;
var date_from;
var date_to;
var dataStr;
var url;
var mo, day, yr;
var entry;
var reHunLong = /\b\d{4}[\-]\d{1,2}[\-]\d{1,2}\b/;
var reHun = /\b\d{4}[.]\s[a-zA-Záúó]+\s\d{1,2}[.]/;
var valid;
var delimChar;
var delim1;
var delim2;
var today;
var currCent;
var threshold;
var testDate;
var year;
var month;
var day;
var regex;
var glossaryJSON;
var hidden;
var orgdate;
var scrollapi;
var ie = document.all && (navigator.userAgent.toLowerCase().indexOf("msie") !== -1);
var ie6 = document.all && (navigator.userAgent.toLowerCase().indexOf("msie 6.") !== -1);
var ie7 = document.all && (navigator.userAgent.toLowerCase().indexOf("msie 7.") !== -1);
var ie8 = document.all && (navigator.userAgent.toLowerCase().indexOf("msie 8.") !== -1);
var ff = navigator.userAgent.toLowerCase().indexOf("firefox") !== -1;
var ffv = ff ? navigator.userAgent.toLowerCase().split("firefox/")[1].substr(0,3)*1 : false;

$(function () {
	$(document).ready(function () {

		/*
			Index page
		*/

		// Highlight image & video selector

		$("div#Highlight div.article-selector a").each(function (i) {
			if ($(this).hasClass("video")) {
				if (!$(this).find("span.playbtn").length) {
					$(this).prepend('<span class="playbtn"></span>');
				}
			}
			$(this).click(function (e) {
				e.preventDefault();
				$("#promo-video").hide();
				$("div#Highlight div.article:visible").removeClass("selected");
				$("div#Highlight div.article:not(.promo-video)").eq(i).addClass("selected");
				$("div#Highlight div.article-selector ul li.selected a img").closest("li").removeClass("selected");
				$(this).find("img").closest("li").addClass("selected");
			});
		});

		$("div#Highlight div.article.video").each(function (i) {
			var $article = $(this);
			if (!$article.find("div.media span.playbtn").length) {
				$article.find("div.media").prepend('<span class="playbtn"></span>');
				$article.find("div.media span.playbtn").click(function (event) {
					event.preventDefault();
					$("#promo-video").show();
				});
			}
		});

		// Side box tab switcher

		$("div.double-tab-box").each(function (ti) {
			$(this).find("div.tab-selector h3").each(function (i) {
				$(this).click(function () {
					$(this).closest("div").find("h3").toggleClass("selected");
					$(this).closest(".double-tab-box").find(".tabs > div.tab").toggleClass("selected");
				});
			});
		});

		$("div.media-box").each(function (ti) {
			var selectorParent = $(this).hasClass("double-tab-box") ? ".tab" : ".media-box";
			$(this).find("ul.media-selector").each(function () {
				$(this).find("li").each(function (i) {
					$(this).click(function () {
						$(this).closest("ul").find("li").removeClass("selected").eq(i).addClass("selected");
						$(this).closest(selectorParent).find("div.media-tab").removeClass("selected").eq(i).addClass("selected");
					});
				});
			});
		});

		/*
			Common
		*/

		// Twitter valid share button

		$("a.twitter-share-button").each(function (i) {
			var $this = $(this), dataUrl = $this.attr("href"), dataCount = "horizontal", href = "http://twitter.com/share";
			$this.replaceWith('<a href="' + href + '" class="twitter-share-button" data-url="' + dataUrl + '" data-count="' + dataCount + '">Tweet</a>');
		});

		// Facebook valid button

		$("a.facebook-share-button").each(function (i) {
			var $this = $(this), href = $this.attr("href"), lang = $this.attr("rel");
			$this.replaceWith('<iframe src="http://www.facebook.com/plugins/like.php?href= ' + href + '&amp;layout=button_count&amp;show_faces=true&amp;width=130&amp;action=recommend&amp;colorscheme=light&amp;height=21&amp;locale='+lang+'" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:110px; height:21px;" allowTransparency="true"></iframe>');
		});


		// Sitemap show-hide

		$("div#Page div.sitemap ul li.toggle").each(function () {
			$(this).click(function (event) {
				var $target = $(event.target);
				if ($target.is("li.toggle")) {
					$(this).toggleClass("closed").find("ul:first").toggle();
				}
			});
		});

		// Open _blank links in new window (for the sake of validity)

		$("a._blank").click(function (event) {
			window.open(this.href);
			return false;
		});

		// Email address replacer

		// Odd list

		$("div#Page div#Content div.content-commisionars ul li:not(.center):even").each(function (i) {
			if (ie7) {
				$(this).before('<li class="fullclear"></li>');
			}
			$(this).addClass("odd");
		});

		$("div#Page div#Content div.content-organization ul:even").each(function (i) {
			if (ie7) {
				$(this).before('<div class="clr"></div>');
			}
			$(this).addClass("odd");
		});

		$("div#Page div#Content div.collection-item:even").each(function (i) {
			if (!$(this).hasClass("odd")) {
				$(this).addClass("odd");
			}
		});

		// Empty search field

		$("div#TopBar input.search, #detailed_search input#text").click(function () {
			var val = $(this).val().toLowerCase();
			if (val == "keresés" || val == "search") {
				$(this).val("");
			}
		});

		// TinyMCE image re-format

		if ($("div.article-content p img").length) {
			formatContent();
		}

		// Auto label to images

		$("div.article-content div.media img").each(function () {
			if ($(this).parent().attr("href") !== undefined
					&& $(this).parent().find("span.more").length === 0
					&& $(this).parents('div.noautolabel').length === 0
				)
			{
				$(this).after('<span class="icon-s more g10"><span></span>' + _Lang.gallery + '<b></b></span>');
			}
		});

		// NavBar

		nbr = false;
		$("#NavBar ul li").each(function (i) {
			if ($(this).outerWidth() > 500) {
				$(this).find("a").text($(this).text().substring(0, 50) + '...');
			}
			tempNav.push($(this));
			navWidth += $(this).outerWidth();
			while (navWidth > $(this).parent().width() && $("#NavBar ul li").length > 2)
			{
				navWidth -= $("#NavBar ul li:first-child").outerWidth();
				$("#NavBar ul li:first-child").remove();
				nbr = true;
			}
			if (nbr) {
				var refindex = tempNav.length - 2;
				$("#NavBar ul").prepend('<li class="previtem"><a href="' + $(tempNav[refindex]).find("a").attr("href") + '">...</a></li>');
			}
		});

		// Print

		$("a.print").each(function () {
			$(this).click(function (event) {
				event.preventDefault();
				window.print();
			});
		});

		/*
			Search
		*/

		// Search form

		$('#TopBar form').submit(function(e) {
			e.preventDefault();
			var hash = '#' + $(this).serialize();
			var reload = location.href.indexOf(this.action) != -1;
			location.href = $('base').attr('href') + $(this).attr('action') + hash;
			if (reload) location.reload();
		});

		// Search tabs

		$("div#SearchForm div.search-tabs ul li").each(function (i) {
			$(this).click(function (event) {
				event.preventDefault();
				$("div#SearchForm div.search-tabs ul li.active").removeClass("active");
				$(this).addClass("active");
				$("div.list-tab-container").removeClass("active").filter("#" + $("a", this).attr("id").substring(3)).addClass("active");
		   });
		});

		if ($('#detailed_search').length) {

			$('.plus-sign li a').click(function () {
				if ($(this).parent().hasClass('active')) {
					$(this).parent().removeClass("active");
					$('#detailed_search #parent_guid_' + $(this).attr('id')).val('off');
				} else {
					$(this).parent().addClass("active");
					$('#detailed_search #parent_guid_' + $(this).attr('id')).val('on');
				}
				$('#detailed_search').submit();
				return false;
			});

			$('.search-tabs ul li a').click(function () {
				$(".search-tabs ul li.active").removeClass("active");
				$(this).parent().addClass("active");

				$('#detailed_search #type').val($(this).attr('name'));
				$('#detailed_search').submit();
				return false;
			});

		}

		// Image and video list zoom

		$("div.item-list div.photo").each(function () {
			$(this).mouseover(function () {
				$(".zoom").removeClass("zoom");
				$(this).css("height",  $(this).height()).addClass("zoom");
			}).mouseout(function () {
				$(this).removeClass("zoom");
			});
		});

		// Datepicker

		if ($(".datepicker").length) {
			$(".datepicker").each(function () {
				hidden = $(this).next('input:hidden');
				orgdate = $(this).val();
				$(this).change(function (event) {
					if ($(this).val() !== '') {
						if (!checkDate($(this).val())) {
							$(this).val(orgdate);
						} else {
							orgdate = $(this).val();
						}
					}
				});
				$(this).datepicker({
					altField: hidden,
					altFormat: 'yy-mm-dd',
					dateFormat: 'yy. MM d.',
					beforeShow: function (input, inst) {
						$(".datepicker").removeClass("active");
						$(this).addClass("active");
					},
					onClose: function (dateText, inst) {
						checkDate($(this).val());
						$(this).removeClass("active");
						if($('#detailed_search')) {
							$('#detailed_search').submit();
						}
					},
					onSelect: function (input, inst) {
						$(this).parent().find("a").show();
					}
				});
				$(this).click( function() {
					$(this).select();
				});
				$(this).parent().find("a.clear").click( function() {
					$(this).parent().find(".datepicker").val("");
					$(this).parent().find("input:hidden").val("");
					$(this).hide();
				});
				$(this).blur( function() {
					if ($(this).val() == '') {
						$(this).next("input:hidden").val("");
						$(this).next("a.clear").hide();
					}
				});
				if (hidden && hidden.val() !== '' && hidden.val()!=undefined) {
					var date = new Date(hidden.val());
					$(this).datepicker('setDate', date);
				}
			});
		}

		/*
			Gallery
		*/

		// Gallery pager

		if ($("div.gallery").length) {
			var galleryScrollable = setTimeout(function(){$("div.gallery").scrollable()}, 50);
		}

		/*
			Custom Form
		*/

		$("div.form .element-select select").each(function (i) {
			var $select = $(this),
				sel = $select.find("option:selected").text();
			if ($select.closest(".element").hasClass("element-select-wide")) {
				$select.siblings("span.selected").html($('<span>').text(sel));
			}
			else {
				$select.siblings("span.selected").text(sel);
			}
			
			$select.change(function () {
				sel = $select.find("option:selected").text();
				if ($select.closest(".element").hasClass("element-select-wide")) {
					$select.siblings("span.selected").html($('<span>').text(sel));
				}
				else {
					$select.siblings("span.selected").text(sel);
				}
			});
		});

		// IE Fix

		if (ie) {

			// :last-child hotfix
			if ($("div.form fieldset").length > 2) {
				$("div.form fieldset").last().addClass("last-child");
			}
			$("div#Footer ul").last().addClass("last-child");
			$("div#NavBar ul li").last().addClass("last-child");
			$("div#EventsTable ul.week").last().addClass("last-child");

		}

		// IE Fix ends

		$("#EventsTable ul").each(function (i) {
			if (ie) {
				$("#EventsTable ul:last-child").css("margin-bottom", "-5px");
			}

			$("li > a", $(this)).click(function (event) {
				event.preventDefault();
				var $parent = $(this).closest("ul");
				if ($parent.hasClass("active")) {
					$parent.closeWeek();
				} else {
					$parent.closest("div").find(".active").closeWeek();
					$parent.openWeek();
				}
			});
		});

		/*
			Table
		*/

		if ($("div#Content table").length) {
			$("div#Content table").formatTable();
		}

		$(".form .element-checkbox, .form .element-checklist ul li," +
				" .form .element-radiolist ul li, .filter ul li").each(function () {
			var $t = $(this),
				$i = $(this).find("input");

			if ($i.is(":checked")) {
				$t.addClass("checked");
			}
			$i.change(function () {
				if ($i.attr("type") === "radio") {
					$t.closest(".element").find("li").removeClass("checked");
				}
				if ($i.is(":checked")) {
					$t.addClass("checked");
				} else {
					$t.removeClass("checked");
				}

				if ($t.closest("div").hasClass("filter") && $t.closest("fieldset").hasClass("type")) {
					var $g = $t.closest("ul"),
						$li = $t.closest("li");

					if ($li.hasClass("group")) {
						if ($i.is(":checked")) {
							$g.find("li").slice(1).addClass("checked").find("input").attr("checked", "checked");
						} else {
							$g.find("li").slice(1).removeClass("checked").find("input").removeAttr("checked");
						}

					} else {
						if ($g.find("li input").slice(1).filter(":checked").length === $g.find("li input").slice(1).length) {
							$g.find("li").eq(0).addClass("checked").find("input").attr("checked", "checked");
						} else {
							$g.find("li").eq(0).removeClass("checked").find("input").removeAttr("checked");
						}
					}

				}
			});
		});

		$(".search-filters fieldset .filter-head").each(function () {
			$(this).click(function () {
				var $fieldset = $(this).closest("fieldset");
				if ($fieldset.hasClass("open")) {
					$fieldset.removeClass("open").addClass("closing").find(".filter").slideUp(function () {
						$fieldset.removeClass("closing").addClass("closed");
					});
				} else {
					$fieldset.removeClass("closed").addClass("opening").find(".filter").slideDown(function () {
						$fieldset.removeClass("opening").addClass("open");
					});
				}
			});
		});


		// checkbox && radio wrapper
		$('div.form div.element span.field ul li label input').each(function(index, element){
			$(this).wrap('<span class="input-element input-element-' + $(this).attr('type') + '"></span>');

			$(this).change(function(event){
				var $this = $(this);

				if($this.attr('type') == 'radio'){
					$this.parents('span.field').find('span.input-element').removeClass('checked');
					$this.parent().addClass('checked');
				}

				if($this.attr('type') == 'checkbox'){
					$this.parent().toggleClass('checked', $this.attr('checked'));
				}

			});
		});
		
		/** Replace anchors with uri prefix */
		$('div#Content a').each(function(){
			if ($(this).attr('href'))
			{
				var href = $(this).attr('href');
				if (href.match(/^(#.+)$/))
				{
					$(this).attr('href', window.location.href + href);
				}
			}
		});
		
	});
});

