(function(win,doc,$){var CookieManagerModule=function(){function _redirectToTermsPage(){var portletNameSpace=option["portletNameSpace"];var prefTermsPageUrl=option["prefTermsPageUrl"];var queryParamCookieAccept=option["queryParamCookieAccept"];var queryParamPageUrl=option["queryParamPageUrl"];var queryParamCookieAcceptValue=option["queryParamCookieAcceptValue"];var queryParamTermsAddress=option["queryParamTermsAddress"];var innerQueryString="?"+queryParamCookieAccept+"\x3d"+queryParamCookieAcceptValue+
"\x26"+queryParamPageUrl+"\x3d"+_BrowserService.getWindowUrl();var innerUrl=_BrowserService.getWindowUrl()+innerQueryString;var outerQueryString="?"+queryParamTermsAddress+"\x3d"+encodeURIComponent(innerUrl);var outerUrl=prefTermsPageUrl+outerQueryString;return outerUrl}var _CookieService=function(){function saveCookie(key,value,expireDays){value=encodeURIComponent(value);var expireTime=new Date;expireTime.setTime(expireTime.getTime()+3600*1E3*24*expireDays);document.cookie=key+"\x3d"+value+";path\x3d/;expires\x3d"+
expireTime.toUTCString()}function readCookie(key){var nameEQ=key+"\x3d";var ca=document.cookie.split(";");for(var i=0;i<ca.length;i++){var c=ca[i];while(c.charAt(0)===" ")c=c.substring(1,c.length);if(c.indexOf(nameEQ)===0){var value=c.substring(nameEQ.length,c.length);value=decodeURIComponent(value);return value}}return null}return{saveCookie:saveCookie,readCookie:readCookie}}();var _BrowserService=function(){function getWindowUrl(){return window.location.href}function redirect(to){window.location.href=
to}function getQueryParameterByName(name,url){if(!url)url=window.location.href;name=name.replace(/[\[\]]/g,"\\$\x26");var regex=new RegExp("[?\x26]"+name+"(\x3d([^\x26#]*)|\x26|#|$)"),results=regex.exec(url);if(!results)return null;if(!results[2])return"";return decodeURIComponent(results[2].replace(/\+/g," "))}function setQueryParameterByName(name,value,url){value=encodeURIComponent(value);var regex=new RegExp("([?\x26]"+name+"\x3d)([^\x26#]*|$)");var modUrl=url.replace(regex,"$1"+value);return modUrl}
return{redirect:redirect,getWindowUrl:getWindowUrl,getQueryParameterByName:getQueryParameterByName,setQueryParameterByName:setQueryParameterByName}}();var _LogService=function(){function debug(message){return option["debug"]&&console.debug()}return{debug:debug}}();var option;function initRedirectPage(_option){option=_option;if(!_option["prefCookieName"]||!_option["prefCookieValue"]||!_option["prefTermsPageUrl"]){_LogService.debug("The portlet is not configured properly: CookieName, CookieValue or RedirectURL is missing. Skipping redirection...");
return}if(_CookieService.readCookie(option["prefCookieName"])!=option["prefCookieValue"]){var queryParamVal=_BrowserService.getQueryParameterByName(option["queryParamCookieAccept"]);if(option["queryParamCookieAcceptValue"]!=queryParamVal){_LogService.debug("Cookie not present and NO accept param is found in query, do redirect to accept terms page");var addressUrl=decodeURIComponent(_BrowserService.getQueryParameterByName(option["queryParamTermsAddress"],_redirectToTermsPage()));addressUrl=_BrowserService.setQueryParameterByName(option["queryParamPageUrl"],
_BrowserService.getWindowUrl(),addressUrl);var redirectToTermsPage=_BrowserService.setQueryParameterByName(option["queryParamTermsAddress"],addressUrl,_redirectToTermsPage());_LogService.debug("Redirecting to "+redirectToTermsPage);_BrowserService.redirect(redirectToTermsPage)}else{_LogService.debug("Cookie not present, accept param found in query, set cookie value in response, do redirect to");_LogService.debug("setting cookie...");_CookieService.saveCookie(option["prefCookieName"],option["prefCookieValue"],
option["prefCookieExpirationDays"]);_LogService.debug("redirect to page...");var originalLandingPageUrl=_BrowserService.getQueryParameterByName(option["queryParamPageUrl"]);_BrowserService.redirect(originalLandingPageUrl)}}else _LogService.debug("Cookie present, no redirection")}return{"initRedirectPage":initRedirectPage}}();if(!win.CookieManagerModule)win.CookieManagerModule=CookieManagerModule})(window,document,jQuery);
