var userCookieName = "img";
var pageCookieName = "thresholdPgCount";
var pageCountThreshold = 6;
var pageCookieExpireDays = 0;

var removeFromBICookieName = "removeIMGfromBI";
var removeCookieFromBIURL = "http://secure.belointeractive.com/sharedcontent/membership/SSO/deleteCookie.jsp";

var getCookieURL = "https://secure.belointeractive.com//sharedcontent/membership/SSO/getCookie.jsp?redir=http://"  + getDomain() + "/sharedcontent/membership/SSO/setCookie.jsp";
var checkedSWLFlag = "checkedSWLFlag";

var imgFound = checkForIMGCookie(userCookieName);
if(!imgFound){
	removeFromBI(removeFromBICookieName);
	pageThresholdCheck(pageCookieName, pageCountThreshold, pageCookieExpireDays);
}


function pageThresholdCheck(cookieName, thresholdCount, cookieExpireDays){
	var pagesLeft = checkRemainingPagesCookie(cookieName);
	if(pagesLeft == null){
		createCookie(cookieName, thresholdCount, cookieExpireDays);
	}
	else{
		if(pagesLeft>0){
			if( !document.DoNeRaN )
			{
				pagesLeft = pagesLeft - 1;

				//Set var in DOM to handle multiple instaces of redir.js being included
				document.DoNeRaN = new Number(0);

				createCookie(cookieName, pagesLeft, cookieExpireDays);	
			}
		}
		else if(pagesLeft<1){
			redirect();
		}
	}

}

function redirect(){
	var currentDomain = document.domain;
	var referrerURL = document.referrer;
	index = referrerURL.indexOf(currentDomain);
	if(index>-1 || referrerURL == null || referrerURL == ""){
		window.location.replace("/sharedcontent/registration/index.jsp?fw=" + document.URL);
	}
}

function checkRemainingPagesCookie(cookieName){
	var pageCount = readCookieInt(cookieName);
	if(pageCount == null){
		return null;
	}
	if(!isNaN(pageCount)){
		return pageCount;		
	}
	else{
		return -1;
	}
}

function checkForIMGCookie(cookieName){
	if (document.cookie.length > 0)
	{
		offset = document.cookie.indexOf(cookieName);
		if (offset != -1) 
		{ 
			return true;
		}
	}
	
	getIMGCookieFromSWL();
		
	return false;
}

function createCookie(name,value,days) {
	if (days) {
   	var date = new Date();
    	date.setTime(date.getTime()+(days*24*60*60*1000));
    	var expires = '; expires='+date.toGMTString();
  	}
  	else{
  		expires = '';
  	}
  	document.cookie = name+'='+value+expires+'; path=/';
}


function readCookieInt(name) {
	var nameEQ = name + '=';
  	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) {
    		str = c.substring(nameEQ.length,c.length);
    		return parseInt(str);
    	}	
  	}
  	return null;
}

function readCookie(name) {
	var nameEQ = name + '=';
  	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) {
    		str = c.substring(nameEQ.length,c.length);
    		return str;
    	}	
  	}
  	return null;
}


function checkForCookie(cookieName){
	if (document.cookie.length > 0)
	{
		offset = document.cookie.indexOf(cookieName);
		if (offset != -1) 
		{ 
			return true;
		}
	}
	return false;
}


function removeFromBI(cookieName){
	try {
		var cookieFound = checkForCookie(cookieName);
		if(cookieFound){
			var cookievalue = readCookie(cookieName);
			if(cookievalue == "true"){
				document.write('<iframe id="removeFromBI" style="position:absolute; visibility:hidden;"></iframe>');
				ifrmPop = document.getElementById('removeFromBI');
				ifrmPop.src = removeCookieFromBIURL;

				dotComIndex = document.domain.lastIndexOf(".com");
				domainIndex = document.domain.lastIndexOf(".", dotComIndex-1);
				document.cookie=cookieName+"=delete; domain=" + document.domain.substr(domainIndex) + ";path=/";
			}
		}
	} catch (e) {
	       //     alert("An exception occurred in removeFromBI. Error name: " + e.name + ". Error message: " + e.message);
	}
		
}

function getIMGCookieFromSWL(){
	var cookieFound = checkForCookie(checkedSWLFlag);
	if(!cookieFound){
		document.write('<iframe id="sendFrame" style="position:absolute; visibility:hidden;"></iframe>');
		ifrmPop = document.getElementById('sendFrame');
		ifrmPop.src = getCookieURL;
		document.cookie=checkedSWLFlag+'='+checkedSWLFlag;
	}
	else{
		//alert("SWL already checked. Don't check again");
	}
}

function getDomain(){ 
	var oldUrl = location.href; 
	var fIndex = oldUrl.indexOf("/"); 
	var newStr = oldUrl.replace(oldUrl.substring(0,fIndex+2),""); 
	var sIndex = newStr.indexOf("/"); 
	return newStr.substring(0,sIndex); 
}

