﻿var Splashscreen = new function () {
	var redirectCookie;
	var languageCookie;
	var redirectCookiePresent;
	var languageCookiePresent;
	var languageQuery;

	this.init = function () {
		redirectCookie = jQuery.cookie("redirecturl");
		languageCookie = jQuery.cookie("selectedLanguage");
		languageQuery = this.getQueryParameterByName("langChanged");
		redirectCookiePresent = redirectCookie != null;
		languageCookiePresent = languageCookie != null;

		if (redirectCookiePresent) {
			if (languageCookiePresent && languageCookie.length > 0) {
				var regexp = new RegExp("/([a-zA-Z-]{2,5})/");
				var redirectCookieLanguage = redirectCookie.match(regexp);
				redirectCookieLanguage = redirectCookieLanguage[1].toString();
				var hasLanguageChanged = redirectCookieLanguage.toLowerCase() !== languageCookie.toLowerCase();
				if (hasLanguageChanged) {
					redirectCookie = redirectCookie.replace(redirectCookie.match(regexp)[0], "/"+languageCookie+"/");
					this.setCookie("redirecturl", redirectCookie, 356);
					redirectCookie = jQuery.cookie("redirecturl");
				}
			}
			this.redirectOnRedirectCookie();
		}
		if (languageCookiePresent) {
			this.hideSplashscreen();
		}

	};

	this.hideSplashscreen = function () {
		jQuery("#splashscreen").hide();
		jQuery("body").removeClass("splashscreen-visible");
	};

	this.setCookie = function (name, value, days) {
		jQuery.cookie(name, value, { expires: days, path: '/' });
	};

	this.redirectOnRedirectCookie = function () {
		var currentUrlWithoutQuerystrings = [location.protocol, '//', location.host, location.pathname].join('');
		if (redirectCookie !== null && redirectCookie !== "") {
			if (redirectCookie.indexOf(currentUrlWithoutQuerystrings) === -1) {
				window.location.replace(redirectCookie);
			}
		}
	};

	this.getQueryParameterByName = function (name) {
		name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
		var regexS = "[\\?&]" + name + "=([^&#]*)";
		var regex = new RegExp(regexS);
		var results = regex.exec(window.location.href);
		if (results == null)
			return "";
		else
			return decodeURIComponent(results[1].replace(/\+/g, " "));
	};

};
