var rskunk={settings:{exemptSections:["/bios","/help"],premiumSubscriptions:["Premium"],cookieName:"rskunk_strib",quotaLimit:0,quotaNagLimit:0,quotaWarningLimit:0},cache:{alreadyViewed:false,authenticated:null,currentQuotaCount:0,forceOpen:false,isPaid:null,refererExempt:null,sectionExempt:null,triggerBuy:false,triggerLimit:false,triggerNag:false,triggerWarning:false},init:function(){var f=window.location.search.toLowerCase().substr(1).split("&"),a=false,b=false,d=false,c=false;for(x in f){var e=f[x].split("=");if(e[0]=="mtr"){switch(e[1]){case"b":case"buy":a=true;this.log("Buy triggered through query string","debug");break;case"n":case"nag":d=true;this.log("Nag triggered through query string","debug");break;case"w":case"warn":case"warning":c=true;this.log("Warning triggered through query string","debug");break;case"l":case"limit":b=true;this.log("Limit triggered through query string","debug");break}}}if(typeof(rskunkArticle)==="undefined"){this.cache.forceOpen=a||b||d||c;this.cache.triggerBuy=a;this.cache.triggerLimit=b;this.cache.triggerNag=d;this.cache.triggerWarning=c;this.log("No article information could be found so metering will not be enforced.","warn");return}else{if(!rskunkArticle.meterEligible){this.cache.forceOpen=a||b||d||c;this.cache.triggerBuy=a;this.cache.triggerLimit=b;this.cache.triggerNag=d;this.cache.triggerWarning=c;this.log("We are not on a meter eligible page so metering will not be enforced.","warn");return}}if(!this.loadSpecialSettings()){this.log("RSkunk is disabled through configuration.","debug")}this.getRefererExemption();this.getWssExemption();this.getAuthenticationStatus();this.getPaidStatus();this.checkLimits();if(a){this.cache.forceOpen=true;this.cache.triggerBuy=true;this.cache.triggerLimit=false;this.cache.triggerNag=false;this.cache.triggerWarning=false}else{if(b){this.cache.forceOpen=true;this.cache.triggerBuy=false;this.cache.triggerLimit=true;this.cache.triggerNag=false;this.cache.triggerWarning=false}else{if(c){this.cache.forceOpen=true;this.cache.triggerBuy=false;this.cache.triggerLimit=false;this.cache.triggerNag=false;this.cache.triggerWarning=true}else{if(d){this.cache.forceOpen=true;this.cache.triggerBuy=false;this.cache.triggerLimit=false;this.cache.triggerNag=true;this.cache.triggerWarning=false}}}}},loadSpecialSettings:function(){if(typeof(rskunkSettings)!=="undefined"){if(!rskunkSettings.enabled){this.settings.quotaLimit=0;this.settings.quotaNagLimit=0;this.settings.quotaWarningLimit=0;this.log("RSkunk is disabled through configuration.","debug");return false}else{this.settings.quotaLimit=rskunkSettings.limit;this.settings.quotaNagLimit=rskunkSettings.nag;this.settings.quotaWarningLimit=rskunkSettings.warning;this.log("Nag limit is now "+this.settings.quotaNagLimit+". Warning limit is now "+this.settings.quotaWarningLimit+". Hard limit is now "+this.settings.quotaLimit+".","debug");return true}}return false},getRefererExemption:function(){if(null!==this.cache.refererExempt){return this.cache.refererExempt}var a=document.referrer;if(-1!==a.indexOf("?")){a=a.substr(0,a.indexOf("?"))}if(a){this.log("Referer detected as "+a,"debug")}else{this.log("No referer was detected.","debug")}this.cache.refererExempt=false;if(a.length>0&&-1===a.toLowerCase().indexOf(".startribune.com")){this.log("Non StarTribune referer detected","debug");this.cache.refererExempt=true}return this.cache.refererExempt},getWssExemption:function(){if(null!==this.cache.sectionExempt){return this.cache.sectionExempt}this.cache.sectionExempt=false;for(x in this.settings.exemptSections){if(rskunkArticle.wssPath.substr(0,this.settings.exemptSections[x].length)===this.settings.exemptSections[x]){this.cache.sectionExempt=true}}if(this.cache.sectionExempt){this.log("This section is exempted from metering.","info")}else{this.log("This section is not exempted from metering.","debug")}return this.cache.sectionExempt},getAuthenticationStatus:function(){if(null!==this.cache.authenticated){return this.cache.authenticated}var a=readCookie("startribune_user_auth");if(null!==a&&a.length>0){this.log("The user is authenticated.","debug");this.cache.authenticated=true}else{this.log("The user is not authenticated.","debug");this.cache.authenticated=false}return this.cache.authenticated},getPaidStatus:function(){if(null!==this.cache.isPaid){return this.cache.isPaid}else{if(this.settings.premiumSubscriptions.length==0){this.cache.isPaid=false;return false}}this.cache.isPaid=false;var a=readCookie("usersubs"),b=new Array();if(null!==a&&a.length>0){b=a.split(", ");for(x in b){for(xx in this.settings.premiumSubscriptions){if(b[x]===this.settings.premiumSubscriptions[xx]){this.cache.isPaid=true;break}}}}if(this.cache.isPaid){this.log("The user has Digital Access.","debug")}else{this.log("The user does not have Digital Access.","debug")}return this.cache.isPaid},recordCurrentArticleAsViewed:function(){var e=rskunkArticle.contentId,d=readCookie(this.settings.cookieName),a=new Array(),c=new Date(),b;if(null===e){return false}if(null!==d){a=readCookie(this.settings.cookieName).split("?")}for(x in a){if(a[x]===e){this.cache.alreadyViewed=true;this.log("This content has already been recorded for the user's quota.","debug");return false;break}}a.push(e);if(c.getMonth()==11){b=new Date(c.getFullYear()+1,0,1)}else{b=new Date(c.getFullYear(),c.getMonth()+1,1)}document.cookie=this.settings.cookieName+"="+a.join("?")+"; expires="+b.toGMTString()+"; path=/";this.log("Content id "+e+" has been marked as viewed.","debug");return true},checkLimits:function(){if(this.cache.refererExempt||this.cache.sectionExempt||this.cache.isPaid){return false}var d=rskunkArticle.contentId,c=readCookie(this.settings.cookieName),b=new Array(),a=null;if(null===d){return false}if(null!==c){b=c.split("?");this.cache.currentQuotaCount=b.length}if(this.settings.quotaLimit>0&&this.cache.currentQuotaCount>=this.settings.quotaLimit){this.log("The user has reached the quota: "+this.cache.currentQuotaCount+" / "+this.settings.quotaLimit,"warn");this.cache.triggerLimit=true;for(x in b){if(b[x]===d){this.cache.alreadyViewed=true;this.cache.triggerLimit=false;this.log("This content has already been recorded for the user's quota so we won't trigger the overlay.","debug");break}}}else{if(this.settings.quotaWarningLimit>0&&this.cache.currentQuotaCount>=this.settings.quotaWarningLimit){this.log("The user has reached the warning limit: "+this.cache.currentQuotaCount+" / "+this.settings.quotaLimit,"warn");if(this.recordCurrentArticleAsViewed()){this.cache.currentQuotaCount++}this.cache.triggerWarning=true}else{if(this.settings.quotaNagLimit>0&&this.cache.currentQuotaCount>=this.settings.quotaNagLimit){this.log("The user has reached the nag limit: "+this.cache.currentQuotaCount+" / "+this.settings.quotaLimit,"warn");if(this.recordCurrentArticleAsViewed()){this.cache.currentQuotaCount++}this.cache.triggerNag=true}else{if(this.recordCurrentArticleAsViewed()){this.cache.currentQuotaCount++}}}}},enforceLimits:function(){if(this.cache.triggerBuy){this.triggerLimitReached("buy")}else{if(this.cache.triggerLimit){this.triggerLimitReached("limit")}else{if(this.cache.triggerWarning){this.triggerLimitReached("warning")}else{if(this.cache.triggerNag){this.triggerLimitReached("nag")}}}}},log:function(a,b){if("undefined"!==typeof(window.console)&&"undefined"!==typeof(window.console.log)){if(typeof(window.console[b])=="function"){window.console[b](a)}}else{if("undefined"!==typeof(console)&&"undefined"!==typeof(console.log)){if(typeof(console[b])=="function"){console[b](a)}}}},triggerLimitReached:function(b){var e={nag:1,warning:2,limit:3,buy:4},c=false;switch(b){case"buy":case"limit":case"warning":case"nag":break;default:b="limit";break}if(this.cache.forceOpen===false&&null!==readCookie(rskunk.settings.cookieName+"nowarning")&&"undefined"!==e[readCookie(rskunk.settings.cookieName+"nowarning")]&&e[readCookie(rskunk.settings.cookieName+"nowarning")]>=e[b]){c=true}if(c){this.log("No thanks ["+b+"]","debug")}else{if(typeof(rskunkArticle.mobile)!=="undefined"&&rskunkArticle.mobile){var a="https://secureapps.startribune.com/digital_access/",d="";if(typeof(rskunkArticle.useStage)!=="undefined"){a=rskunkArticle.useStage}d=a+"mobile/limit.php?act="+b;if(rskunk.cache.forceOpen){d+="&force=true&rurl="+escape("http://"+window.location.host.toString()+"/")}else{d+="&rurl="+escape(window.location.toString())}d+="&quota="+rskunk.cache.currentQuotaCount;top.location.href=d}else{cancelRefresh();jQuery.colorbox({escKey:false,href:"/templates/Meter_LB_Pages?level="+b,opacity:1,open:true,overlayClose:false,scrolling:false,transition:"none",onComplete:function(){jQuery("body").css("overflow","hidden");jQuery("#cboxContent").css("padding","0")},onClosed:function(){jQuery("body").css("overflow","visible");jQuery("#cboxClose").show()}})}}},noThanks:function(b,c){switch(b){case"buy":if(!c){jQuery.colorbox.close()}return false;break;case"limit":case"warning":case"nag":break;default:b="limit";break}var a=new Date();if(a.getMonth()==11){cookieExpirationDate=new Date(a.getFullYear()+1,0,1)}else{cookieExpirationDate=new Date(a.getFullYear(),a.getMonth()+1,1)}document.cookie=this.settings.cookieName+"nowarning="+b+"; expires="+cookieExpirationDate.toGMTString()+"; path=/";this.log("'No thanks' has been triggered.","debug");if(c!==true){jQuery.colorbox.close()}}};if(typeof(jQuery)!=="undefined"){rskunk.init();jQuery(window).bind("load",function(){rskunk.enforceLimits()})};

