// Function to set a cookie
function setCookie(name, value, expires) {
    document.cookie = escape(name) + "=" + value + "; path=/; domain=zap2it.com" +
    ((expires == null) ? "" : "; expires=" + expires.toGMTString(  ));
}

// Function to retrieve a cookie's value
function getCookie(name) {
    var cookiename = name + "=";
    var dc = document.cookie;
    var begin, end;

    if (dc.length > 0) {
        begin = dc.indexOf(cookiename);
        if (begin != -1) {
            begin += cookiename.length;
            end = dc.indexOf(";", begin);
            if (end == -1) {
                end = dc.length;
            }
            return unescape(dc.substring(begin, end));
        }
    }
    return null;
}

// Function to delete a cookie
function deleteCookie(name) {
    document.cookie = name + "=; expires=Thu, 01-Jan-70 00:00:01 GMT" +
        "; path=/";
}

// Function to set crumb value in the cookie
function setCrumb(cookie, name, exp, value) {
    var cookievalue = getCookie(cookie);
    var crumbvalue = getCrumb(name);
    var crumbname = name + '=';

    if (crumbvalue != null) {
        var start = cookievalue.indexOf(crumbname);
        if (start != -1) {
            var end = cookievalue.indexOf('|', start);
            setCookie(cookie,
                      cookievalue.substring(0, start) + crumbname
                      + value + '|'
                      + cookievalue.substring(end + 1, cookievalue.length),
                      exp);
        }
    }
    else {
        if (cookievalue != null) {
            cookievalue += crumbname + value + '|';
        }
        else {
            cookievalue = crumbname + value + '|';
        }
        setCookie(cookie, cookievalue, exp);
    }
}

// Function to get crumb value from the cookie
function getCrumb(cookie, name) {
    var crumbname = name + '=';
    var cookievalue = getCookie(cookie);

    if (cookievalue != null) {
        var start = cookievalue.indexOf(crumbname);
        if (start != -1) {
            start += crumbname.length;
            var end = cookievalue.indexOf('|', start);
            if (end != -1) {
                return unescape(cookievalue.substring(start, end));
            }
        }
    }
    return null;
}

// Function to delete crumb from the cookie
function deleteCrumb(cookie, name) {
var cookievalue = getCookie(cookie);
var crumbvalue = getCrumb(cookie, name);
var crumbname = name + '=';
var exp = new Date();
exp.setTime(exp.getTime() + (1000 * 60 * 60 * 24 * 31));

if (crumbvalue != null) {
    var start = cookievalue.indexOf(crumbname);
    var end = cookievalue.indexOf('|', start);
setCookie(cookie,
  cookievalue.substring(0, start) +
                  cookievalue.substring(end + 1, cookievalue.length),
                  exp);
}
}

// Function to take care of "zap_sugar" session cookie info and "zap_oatmeal/visitorid" crumb
function tracker() {
var visitorID = "";
var sessionID = "";
var theCount = 0;
var randomSessionID = Math.round(Math.random() * 1000000000000);
var randomVisitorID = Math.round(Math.random() * 10000000000000000000);
// Set the session time out.
var expSession = new Date();
expSession.setTime(expSession.getTime() + (1000 * 60 * 15));
// Set the persistent time out.
var expPersist = new Date();
expPersist.setTime(expPersist.getTime() + (1000 * 60 * 60 * 24 * 365));
// If no session cookie, set one.
if (getCookie("zap_sugar") == null) {
setCrumb("zap_sugar", "id", expSession, randomSessionID);
setCrumb("zap_sugar", "count", expSession, 1);
} else {
// If there is a session cookie, increment the count
count = getCrumb("zap_sugar", "count");
theCount = ++count;
deleteCrumb("zap_sugar", "count");
setCrumb("zap_sugar", "count", expSession, theCount);
}
// If no visitorid, set one.
if (getCrumb("zap_oatmeal", "id") == null) {
setCrumb("zap_oatmeal", "id", expPersist, randomVisitorID);
}
}



// Function to take care of the "zap_oatmeal/tvprovider" crumb
function setTvpartner() {
// Set the persistent time out.
var expPersist = new Date();
expPersist.setTime(expPersist.getTime() + (1000 * 60 * 60 * 24 * 365));
// Set the tvpartner crumb
//var partnum = "national";
deleteCrumb("zap_oatmeal", "tvpartner");
setCrumb("zap_oatmeal", "tvpartner", expPersist, "national");

}

function redirectToAd()
 {
     document.cookie="test=1";
 	 if (document.cookie=='')
	 {
	 	return;
	 }

 	 var defaultAdCounter=3;
	 var defaultHours=24;
 	 var redirect =false;
 	 var adServed=getCrumb("zap_adServed","adServed");
	 if(adServed==null)
	 {
	 	 adCounter=getCrumb("zap_oatmeal","adCounter");
		 if(adCounter==null || adCounter>0)
		 {
			expPersist=new Date();
			expPersist.setTime(expPersist.getTime() + (1000 * 60 * 60 *defaultHours ));
		 	if(adCounter==null)
			{
				adCounter=defaultAdCounter;
			}
		 	adCounter--;
			deleteCrumb("zap_oatmeal","adCounter") ;
			setCrumb("zap_oatmeal", "adCounter", expPersist,adCounter);
			document.location.href = "http://www.zap2it.com/index/misc/premercial?redirectTarget="+escape(Window.location);
		 }
 		 deleteCrumb("zap_adServed","adServed") ;
		 setCrumb("zap_adServed", "adServed", null,1);
	 }
 }


setTvpartner();
tracker();
//redirectToAd();