﻿jQuery.noConflict();
(function($) {
	$.ajaxSetup(
	{
		async: true,
		contentType: "application/json; charset=utf-8",
		dataType: "json",
		type: "POST",
		data: "{}",
		dataFilter: function(data, type) {
			return data.replace(/"\\\/(Date\([0-9-]+\))\\\/"/gi, "new $1");
		},
		error: function(xhr, msg) {
			alert(msg);
		}
	});
	$(function() {
		if ($.browser.msie && $.browser.version < 7) {
			$("input:text").addClass("text");
			var objs = document.getElementsByTagName("IMG");
			var isPng = /\.png$/i;
			for (var i = 0, l = objs.length; i < l; i++) {
				var img = objs[i];
				if (!isPng.test(img.src))
					continue;
				img.style.width = img.width + "px";
				img.style.height = img.height + "px";
				img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + img.src + "',sizingMethod='scale')";
				img.src = "img/t.gif";
			}
		}
		$("#topmenu").topmenu();
		$("#languages button").click(function() {
			var rtl = $(document.body).css("direction") == "rtl";
			var container = $("#languages").toggleClass("opened").find("ul");
			var btn = $(this).text(container.is(":visible") ? $(this).text().replace("▲", "▼") : $(this).text().replace("▼", "▲"));
			var offset = btn.offset();
			container.css({ top: offset.top + btn.height(), left: offset.left - (rtl ? 0 : container.width() - btn.width()) }).toggle();
		});
		$("#languages li").hover(function() {
			$(this).addClass("hover");
		}, function() {
			$(this).removeClass("hover");
		});
		$("#languages a").click(function() {
			$("#languages button").click();
			var lang = $(this).attr("id").substring(1);
			$.ajax({
				url: "/layouts/Browser Layout.aspx/SwitchLangs",
				data: "{Lang: \"" + lang + "\"}",
				success: function(msg) {
					top.location.href = msg.d;
				}
			});
		});
		$("#loginEmail").live("focus", function() {
			var input = $(this);
			if (input.val() == input.attr("alt"))
				input.val("");
		}).live("blur", function() {
			var input = $(this);
			if (input.val().length == 0)
				input.val(input.attr("alt"));
		});
		$("#loginPasswordDummy").live("focus", function() {
			$(this).hide();
			$("#loginPassword").show();
			setTimeout("jQuery(\"#loginPassword\").focus();", 0);
		});
		$("#loginPassword").live("blur", function() {
			if ($(this).val().length != 0)
				return;
			if ($("#loginPasswordDummy").show().length == 1)
				$(this).hide();
		});
		$("#header .tools .login a.forgot").live("click", function(event) {
			event.preventDefault();
			$.ajax({
				url: "/WSHelper.aspx/BeforeForgot",
				success: function(msg) {
					$("#authentication").html(msg.d);
					$("#forgotEmail").focus();
				}
			});
		});
		$("#header .login a.cmd").live("click", function() {
			$("#header .login .error").remove();
			var btn = $(this).css("visibility", "hidden");
			$("#header .login").addClass("loading");
			$.ajax({
				url: "/WSHelper.aspx/AfterLogin",
				data: JSON.stringify({ email: $("#loginEmail").val(), password: $("#loginPassword").val() }),
				success: function(msg) {
					if (msg.d == "LOGIN_SUCCESS")
						window.location.reload(true);
					else
						$("#authentication").html(msg.d);
				},
				complete: function() {
					$("#header .login").removeClass("loading");
					btn.css("visibility", "visible");
				}
			});
		});
		$("#header .tools .forgot a.cmd").live("click", function(event) {
			event.preventDefault();
			var btn = $(this).css("visibility", "hidden");
			$("#header .forgot").addClass("loading");
			$.ajax({
				url: "/WSHelper.aspx/AfterForgot",
				data: JSON.stringify({ email: $("#forgotEmail").val() }),
				success: function(msg) {
					$("#authentication").html(msg.d);
					$("#header .forgot").removeClass("loading");
				}
			});
		});
		$("#header .tools .logoff .cmd").live("click", function(event) {
			event.preventDefault();
			$.ajax({
				url: "/WSHelper.aspx/LogOff",
				success: function(msg) {
					window.location.href = msg.d;
				}
			});
		});
		$("#footer .payments a.prev, #footer .payments a.next").click(function() {
			var container = $("#footer .payments div");
			var width = container.width() * ($(this).hasClass("next") ? 1 : -1);
			var min = 0;
			var max = container.attr("scrollWidth") - container.width();
			if ($(document.body).css("direction") == "rtl") {
				var browser = $.browser;
				if ((browser.msie && browser.version < 8) || browser.safari)
					width *= -1;
				else if (browser.mozilla) {
					width *= -1;
					min = -max;
					max = 0;
				}
			}
			container.animate({ scrollLeft: Math.min(Math.max(container.attr("scrollLeft") + width, min), max) }, 1000);
		});
		$("#sitemap h3 a").click(function(event) {
			event.preventDefault();
			var container = $("#sitemap .content");
			if (container.is(":visible"))
				container.hide(750);
			else {
				container.show(50, function() {
					$("html, body").animate({ scrollTop: $("html").attr("scrollHeight") }, 750);
				});
			}
			$(this).toggleClass("opened");
		});
		$("#generic tbody tr:odd").addClass("odd");
	});

	$.fn.topmenu = function() {
		var _rtl = $(document.body).css("direction") == "rtl";
		var _current = null;
		var _focused = null;
		var _toHide = null;
		var _toHideTimerID = null;
		var _toHideTimeout = 600;
		var _timerID = null;

		return this.each(function() {
			$("td", this).hover(function() {
				if (_toHideTimerID) {
					clearTimeout(_toHideTimerID);
					_toHideTimerID = null;
				}
				showSub(this);
			},
			function() {
				_toHide = $(this);
				_toHideTimerID = setTimeout(beforeHide, _toHideTimeout);
			});
		});

		function beforeHide() {
			_toHideTimerID = null;
			hideSub(_toHide);
		}
		function showSub(item) {
			item = $(item);
			if (item != _current) {
				clearTimeout(_timerID);
				hideSub(_current);
			}
			var isLast = item.next().length == 0;
			$("ul:first", item).css(
			{
				top: $(item).position().top + $(item).height(),
				left: (_rtl || isLast) && !(_rtl && isLast) ? $(item).position().left - $("ul:first", item).width() + $(item).attr("offsetWidth") - 3 : $(item).position().left
			}).show();
			_current = item;
		}
		function hideSub(item) {
			if (!item)
				return;
			$("ul:first", item).hide();
			_current = null;
		}
		function afterBlur() {
			if (_focused == null) {
				hideSub(_current);
				return;
			}
		}
	};

	$.fn.calendar = function(settings) {
		var regional = {
			en: { monthNames: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], dayNamesMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"] },
			ar: { monthNames: ["كانون الثاني", "شباط", "آذار", "نيسان", "آذار", "حزيران", "تموز", "آب", "أيلول", "تشرين الأول", "تشرين الثاني", "كانون الأول"], dayNamesMin: ["سبت", "أحد", "اثنين", "ثلاثاء", "أربعاء", "خميس", "جمعة"] },
			bg: { monthNames: ["Януари", "Февруари", "Март", "Април", "Май", "Юни", "Юли", "Август", "Септември", "Октомври", "Ноември", "Декември"], dayNamesMin: ["Не", "По", "Вт", "Ср", "Че", "Пе", "Съ"] },
			ca: { monthNames: ["Gener", "Febrer", "Mar&ccedil;", "Abril", "Maig", "Juny", "Juliol", "Agost", "Setembre", "Octubre", "Novembre", "Desembre"], dayNamesMin: ["Dg", "Dl", "Dt", "Dc", "Dj", "Dv", "Ds"] },
			cs: { monthNames: ["leden", "únor", "březen", "duben", "květen", "červen", "červenec", "srpen", "září", "říjen", "listopad", "prosinec"], dayNamesMin: ["ne", "po", "út", "st", "čt", "pá", "so"] },
			da: { monthNames: ["Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November", "December"], dayNamesMin: ["Sø", "Ma", "Ti", "On", "To", "Fr", "Lø"] },
			de: { monthNames: ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"], dayNamesMin: ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"] },
			el: { monthNames: ["Ιανουάριος", "Φεβρουάριος", "Μάρτιος", "Απρίλιος", "Μάιος", "Ιούνιος", "Ιούλιος", "Αύγουστος", "Σεπτέμβριος", "Οκτώβριος", "Νοέμβριος", "Δεκέμβριος"], dayNamesMin: ["Κυ", "Δε", "Τρ", "Τε", "Πε", "Πα", "Σα"] },
			eo: { monthNames: ["Januaro", "Februaro", "Marto", "Aprilo", "Majo", "Junio", "Julio", "Aŭgusto", "Septembro", "Oktobro", "Novembro", "Decembro"], dayNamesMin: ["Di", "Lu", "Ma", "Me", "Ĵa", "Ve", "Sa"] },
			es: { monthNames: ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"], dayNamesMin: ["Do", "Lu", "Ma", "Mi", "Ju", "Vi", "S&aacute;"] },
			fa: { monthNames: ["فروردين", "ارديبهشت", "خرداد", "تير", "مرداد", "شهريور", "مهر", "آبان", "آذر", "دي", "بهمن", "اسفند"], dayNamesMin: ["ي", "د", "س", "چ", "پ", "ج", "ش"] },
			fi: { monthNames: ["Tammikuu", "Helmikuu", "Maaliskuu", "Huhtikuu", "Toukokuu", "Kes&auml;kuu", "Hein&auml;kuu", "Elokuu", "Syyskuu", "Lokakuu", "Marraskuu", "Joulukuu"], dayNamesMin: ["Su", "Ma", "Ti", "Ke", "To", "Pe", "La"] },
			fr: { monthNames: ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"], dayNamesMin: ["Di", "Lu", "Ma", "Me", "Je", "Ve", "Sa"] },
			he: { monthNames: ["ינואר", "פברואר", "מרץ", "אפריל", "מאי", "יוני", "יולי", "אוגוסט", "ספטמבר", "אוקטובר", "נובמבר", "דצמבר"], dayNamesMin: ["א", "ב", "ג", "ד", "ה", "ו", "ש"] },
			hr: { monthNames: ["Siječanj", "Veljača", "Ožujak", "Travanj", "Svibanj", "Lipani", "Srpanj", "Kolovoz", "Rujan", "Listopad", "Studeni", "Prosinac"], dayNamesMin: ["Ne", "Po", "Ut", "Sr", "Če", "Pe", "Su"] },
			hu: { monthNames: ["Január", "Február", "Március", "Április", "Május", "Június", "Július", "Augusztus", "Szeptember", "Október", "November", "December"], dayNamesMin: ["V", "H", "K", "Sze", "Cs", "P", "Szo"] },
			hy: { monthNames: ["Հունվար", "Փետրվար", "Մարտ", "Ապրիլ", "Մայիս", "Հունիս", "Հուլիս", "Օգոստոս", "Սեպտեմբեր", "Հոկտեմբեր", "Նոյեմբեր", "Դեկտեմբեր"], dayNamesMin: ["կիր", "երկ", "երք", "չրք", "հնգ", "ուրբ", "շբթ"] },
			id: { monthNames: ["Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "Nopember", "Desember"], dayNamesMin: ["Mg", "Sn", "Sl", "Rb", "Km", "jm", "Sb"] },
			is: { monthNames: ["Jan&uacute;ar", "Febr&uacute;ar", "Mars", "Apr&iacute;l", "Ma&iacute", "J&uacute;n&iacute;", "J&uacute;l&iacute;", "&Aacute;g&uacute;st", "September", "Okt&oacute;ber", "N&oacute;vember", "Desember"], dayNamesMin: ["Su", "M&aacute;", "&THORN;r", "Mi", "Fi", "F&ouml;", "La"] },
			it: { monthNames: ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"], dayNamesMin: ["Do", "Lu", "Ma", "Me", "Gio", "Ve", "Sa"] },
			ja: { monthNames: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"], dayNamesMin: ["日", "月", "火", "水", "木", "金", "土"] },
			ko: { monthNames: ["1월(JAN)", "2월(FEB)", "3월(MAR)", "4월(APR)", "5월(MAY)", "6월(JUN)", "7월(JUL)", "8월(AUG)", "9월(SEP)", "10월(OCT)", "11월(NOV)", "12월(DEC)"], dayNamesMin: ["일", "월", "화", "수", "목", "금", "토"] },
			lt: { monthNames: ["Sausis", "Vasaris", "Kovas", "Balandis", "Gegužė", "Birželis", "Liepa", "Rugpjūtis", "Rugsėjis", "Spalis", "Lapkritis", "Gruodis"], dayNamesMin: ["Se", "Pr", "An", "Tr", "Ke", "Pe", "Še"] },
			lv: { monthNames: ["Janvāris", "Februāris", "Marts", "Aprīlis", "Maijs", "Jūnijs", "Jūlijs", "Augusts", "Septembris", "Oktobris", "Novembris", "Decembris"], dayNamesMin: ["Sv", "Pr", "Ot", "Tr", "Ct", "Pk", "Ss"] },
			ms: { monthNames: ["Januari", "Februari", "Mac", "April", "Mei", "Jun", "Julai", "Ogos", "September", "Oktober", "November", "Disember"], dayNamesMin: ["Ah", "Is", "Se", "Ra", "Kh", "Ju", "Sa"] },
			nl: { monthNames: ["januari", "februari", "maart", "april", "mei", "juni", "juli", "augustus", "september", "oktober", "november", "december"], dayNamesMin: ["zo", "ma", "di", "wo", "do", "vr", "za"] },
			no: { monthNames: ["Januar", "Februar", "Mars", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Desember"], dayNamesMin: ["Sø", "Ma", "Ti", "On", "To", "Fr", "Lø"] },
			pl: { monthNames: ["Styczeń", "Luty", "Marzec", "Kwiecień", "Maj", "Czerwiec", "Lipiec", "Sierpień", "Wrzesień", "Październik", "Listopad", "Grudzień"], dayNamesMin: ["N", "Pn", "Wt", "Śr", "Cz", "Pt", "So"] },
			pt: { monthNames: ["Styczeń", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agôsto", "Setembro", "Outubro", "Novembro", "Dezembro"], dayNamesMin: ["Do", "Se", "Te", "Qua", "Qui", "Se", "Sa"] },
			ro: { monthNames: ["Ianuarie", "Februarie", "Martie", "Aprilie", "Mai", "Iunie", "Iulie", "August", "Septembrie", "Octombrie", "Noiembrie", "Decembrie"], dayNamesMin: ["Du", "Lu", "Ma", "Mi", "Jo", "Vi", "Sâ"] },
			ru: { monthNames: ["Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"], dayNamesMin: ["Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб"] },
			sk: { monthNames: ["Január", "Február", "Marec", "Apríl", "Máj", "Jún", "Júl", "August", "September", "Október", "November", "December"], dayNamesMin: ["Ne", "Po", "Ut", "St", "Št", "Pia", "So"] },
			sl: { monthNames: ["Januar", "Februar", "Marec", "April", "Maj", "Junij", "Julij", "Avgust", "September", "Oktober", "November", "December"], dayNamesMin: ["Ne", "Po", "To", "Sr", "&#x10C;e", "Pe", "So"] },
			sq: { monthNames: ["Janar", "Shkurt", "Mars", "Prill", "Maj", "Qershor", "Korrik", "Gusht", "Shtator", "Tetor", "Nëntor", "Dhjetor"], dayNamesMin: ["Di", "Hë", "Ma", "Më", "En", "Pr", "Sh"] },
			sr: { monthNames: ["Јануар", "Фебруар", "Март", "Април", "Мај", "Јун", "Јул", "Август", "Септембар", "Октобар", "Новембар", "Децембар"], dayNamesMin: ["Не", "По", "Ут", "Ср", "Че", "Пе", "Су"] },
			sv: { monthNames: ["Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December"], dayNamesMin: ["Sö", "Må", "Ti", "On", "To", "Fr", "Lö"] },
			th: { monthNames: ["มกราคม", "กุมภาพันธ์", "มีนาคม", "เมษายน", "พฤษภาคม", "มิถุนายน", "กรกฏาคม", "สิงหาคม", "กันยายน", "ตุลาคม", "พฤศจิกายน", "ธันวาคม"], dayNamesMin: ["อา.", "จ.", "อ.", "พ.", "พฤ.", "ศ.", "ส."] },
			tr: { monthNames: ["Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık"], dayNamesMin: ["Pz", "Pt", "Sa", "Ça", "Pe", "Cu", "Ct"] },
			uk: { monthNames: ["Січень", "Лютий", "Березень", "Квітень", "Травень", "Червень", "Липень", "Серпень", "Вересень", "Жовтень", "Листопад", "Грудень"], dayNamesMin: ["Нд", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб"] },
			zh: { monthNames: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], dayNamesMin: ["日", "一", "二", "三", "四", "五", "六"] }
		};
		var today = new Date(Math.floor((new Date()).valueOf() / 86400000) * 86400000);
		settings = $.extend({ region: "en", date: new Date(today), dates: [] }, settings);
		var region = regional[settings.region];
		var date = new Date(settings.date);
		var dates = settings.dates;
		date.setUTCDate(1);
		return this.each(function() {
			var title = $(".date", this);
			var tbody = $("thead", this).empty();
			var tr = $("<tr/>").appendTo(tbody);
			for (var i = 0, l = region.dayNamesMin.length; i < l; i++)
				tr.append($("<th/>").text(region.dayNamesMin[i]));
			tbody = $("tbody", this).empty();
			for (var i = 0; i < 6; i++) {
				var tr = $("<tr/>").appendTo(tbody);
				for (var j = 0; j < 7; j++)
					$("<td/>").appendTo(tr);
			}
			$("button.prev", this).click(function() {
				date.setUTCMonth(date.getUTCMonth() - 1);
				if (settings.navigation)
					dates = settings.navigation(date, settings);
				render();
			});
			$("button.next", this).click(function() {
				date.setUTCMonth(date.getUTCMonth() + 1);
				if (settings.navigation)
					dates = settings.navigation(date, settings);
				render();
			});
			render();

			function render() {
				var month = date.getUTCMonth();
				title.text(region.monthNames[month] + " " + date.getFullYear());
				var firstDay = date.getUTCDay();
				tbody.find("td").empty().removeClass();
				for (var i = 0; i < 42; i++) {
					cell = tbody.find("tr:eq(" + Math.floor(i / 7) + ")").find("td:eq(" + (i % 7) + ")");
					if (i >= firstDay && date.getUTCMonth() == month) {
						cell.toggleClass("today", date.getTime() == today.getTime());
						var j = -1;
						$.each(dates, function(i, v) {
							if (v != null && v[0] == date.valueOf())
								j = i;
						});
						if (j == -1)
							cell.text(date.getUTCDate());
						else
							$("<a/>").attr("href", dates[j][1]).text(date.getUTCDate()).appendTo(cell);
						date.setUTCDate(date.getUTCDate() + 1);
					}
				}
				date.setUTCMonth(date.getUTCMonth() - 1);
				date.setUTCDate(1);
			}
		});
	};
})(jQuery);

function GetArchiveItems(date, settings) {
	var lang = settings.region;
	var itemType = settings.itemType;
	var year = date.getUTCFullYear();
	var month = date.getUTCMonth() + 1;
	var dates = [];
	jQuery.ajax(
        {
        	async: false,
        	//type: "POST",
        	//contentType: "application/json; charset=utf-8",
        	dataType: "json",
        	url: "/layouts/Browser layout.aspx/GetArchiveItems",
        	data: "{'year' : " + year + ", 'month' : " + month + ", 'type' : '" + itemType + "', 'language' : '" + lang + "'}",
        	success: function(data) {
        		dates = data.d;
        	},
        	error: function(data) { }
        });
	return dates;
}
