var TalentumHR = function() {
	return {	
		init: function() {
			/* IE6 fixes */
			if (document.attachEvent) {
				document.createElement("abbr");		
			}
			
			/* Init modules */
			Talentum.addAnchors.init([
				{element: ".teaser", include: ["IMG"]},
				{element: ".packages li", include: ["P", "IMG"]},
				{element: ".service-teaser", include: ["P", "IMG"]},
				{element: ".box", include: ["P"]}
			]);
			Talentum.mediaplayer.init();
			Talentum.print.init();
			Talentum.slideshow.init();
			Talentum.toggle.init();
			TalentumHR.recommend.init();
			TalentumHR.toggleIframes.init();
		}
	};
}();


TalentumHR.toggleIframes = function() {
	var buttonClass = "toggle-iframe";
	var easingTime = 300;
	return {
		init: function() {
			Talentum.eventHandler.register("click", "a." + buttonClass, function() {
				this.blur();
				$("iframe").setStyle("display", "none");
				var targetIframeId = Talentum.getClassNameValue(this, buttonClass);
				var targetIframe = $$(targetIframeId);
				targetIframe.setStyle(DOMEffects.getOpacityRule(0));
				targetIframe.setStyle("display", "block");
				targetIframe.fadeIn();
				return true;
			});
		}
	};
}();


TalentumHR.recommend = function() {
	var triggerClass = "toggle-recommend";
	var recommendId = "recommend";

	var DOMReady = function() {
		var recommend = $$(recommendId);
		if (recommend != null) {
			document.body.insertBefore(recommend, document.body.firstChild);
			recommend.setStyle({
				position: "absolute",
				display: "none",
				"z-index": 10000
			});

			var form = $(recommend.cssSelect("form")[0]);
			var fieldset = recommend.cssSelect("fieldset");
			fieldset.removeClass("display-none");
			$$("recommend-from").value = Talentum.userSettings.getPreference("name");
			fieldset.create("a", {href: "", className: "close"}, true, "Avbryt");
			form = new Talentum.AJAXForm(form);
			form.setBeforeSubmissionHandler(function() {
				if (!Talentum.form.validate.call(form)) {
					return false;
				} else {
					this.cssSelect(".alert-box").remove();
				}
				Talentum.userSettings.setPreference("name", $$("recommend-from").value);
			});
			
			form.setResponseHandler(function(data) {
				if (data && data.length > 0) {
					var notice = form.create("span", {className: "notice"}, true);
					notice.setStyle("display", "none");
					fieldset.addClass("display-none");
					notice.setStyle(DOMEffects.getOpacityRule(0));
					notice.setStyle("display", "block");
					data = unescape(data).replace("toggle-recommend", "close");
					notice.innerHTML = data;
					notice.fadeIn();
				}
			});
		}
	};

	return {
		init: function() {
			Talentum.addOnDOMReady(DOMReady);

			Talentum.eventHandler.register("click", "." + triggerClass, function() {
				var recommend = $$("recommend");
				if (recommend) {
				
					TalentumHR.cover.show();
					recommend.setStyle(DOMEffects.getOpacityRule(0));
					recommend.setStyle("display", "block");
					var width = Talentum.getActualWidth(recommend);
					var height = Talentum.getActualHeight(recommend);
					var pageWidth = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth;
					var pageHeight = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight;
					var pageTop = window.pageYOffset ? window.pageYOffset : document.documentElement.scrollTop;
					recommend.setStyle({
						left: (pageWidth / 2 - width / 2) + "px",
						top: (pageTop + pageHeight / (1 + Math.sqrt(5) / 2)) - height + "px"
					});
					recommend.fadeIn({duration: 250, callback: function() {
						$$("recommend-to").focus();
					}});
				}
			});
			
			Talentum.eventHandler.register("click", "#" + recommendId + " .close", function() {
				TalentumHR.cover.hide();
				$$(recommendId).hide({duration: 250, callback: function() {
					this.cssSelect("fieldset").setStyle("display", "block");
					this.cssSelect(".alert-box, .notice").remove();
					this.cssSelect(".has-error").removeClass("has-error");
					$$("recommend-to").value = "";
				}});
			});
		}
	};
}();


TalentumHR.cover = function() {
	return {
		resize: function() {
			$$("page-cover").setStyle({
				width: Math.max(Talentum.getActualWidth($$("page")), window.innerWidth ? window.innerWidth : document.documentElement.clientWidth) + "px",
				height: Math.max(Talentum.getActualHeight($("html")[0]), Talentum.getActualHeight($("body")[0]), window.innerHeight ? window.innerHeight : document.documentElement.clientHeight) + "px"
			});
		},
		show: function() {
			var cover = $$("page-cover");
			$("body").setStyle("overflow", "hidden");
			if (!cover) {
				cover = $(document.body).create("div", {id: "page-cover"}, true);
				cover.setStyle({
					position: "absolute",
					left: "0",
					top: "0",
					"z-index": 9999
				});
			}
			TalentumHR.cover.resize();
			cover.setStyle("display", "block");
			$(window).addEvent("resize", TalentumHR.cover.resize);
		},
		hide: function() {
			$("body").setStyle("overflow", "auto");
			$$("page-cover").setStyle("display", "none");
			$(window).removeEvent("resize", TalentumHR.cover.resize);
		}
	};
}();


TalentumHR.init();