// globals
var repeatCustomer = false
var lastVisit = 0 // to hold date & time of previous access in GMT milliseconds
var dateAdjustment = 0 // to accommodate date bugs on some platforms

// shared cookie functions
// read cookie data
function getCookieData(name) {
	var label = name + "="
	var labelLen = label.length
	var cLen = document.cookie.length
	var i = 0
	while (i < cLen) {
		var j = i + labelLen
		if (document.cookie.substring(i,j) == label) {
			var cEnd = document.cookie.indexOf(";",j)
			if (cEnd ==	-1) {
				cEnd = document.cookie.length
			}
			return unescape(document.cookie.substring(j,cEnd))
		}
		i++
	}
	return ""
}

// write cookie data
function setCookieData(name,dateData,expires) {
	document.cookie = name + "=" + dateData + "; expires=" + expires
}

// set dateAdjustment to accommodate Mac bug in Navigator 2.0x
function adjustDate() {
  var base = new Date()
  var testDate = base
  testDate = testDate.toLocaleString()
  testDate = new Date(testDate)
  dateAdjustment = testDate.getTime() - base.getTime()
}

// write date of current visit (in GMT time) to cookie
function saveCurrentVisit() {
	var visitDate = new Date()
	var nowGMT = visitDate.getTime() - dateAdjustment
	var expires = (nowGMT + (180 * 24 * 60 * 60 *1000))
	expires = new Date(expires)
	expires = expires.toGMTString()
	setCookieData("lastVisit", nowGMT, expires)
}

// set up global variables and establish whether user is repeat customer
function initialize() {
	var lastStoredVisit = getCookieData("lastVisit")
	var nextPrevStoredVisit = getCookieData("nextPrevVisit")
	
	adjustDate()
	
	if (lastStoredVisit == null || lastStoredVisit == "") { // never been here before
		saveCurrentVisit()
		repeatCustomer = false
	} else { // been here before...
		if (nextPrevStoredVisit == null || nextPrevStoredVisit == "") {  // but first time this session
			setCookieData("nextPrevVisit",lastStoredVisit,"") // only for current session
			lastVisit = parseFloat(lastStoredVisit)
			saveCurrentVisit()
			repeatCustomer = true
		} else { // back again during this session (perhaps reload or Back)
			lastVisit = parseFloat(nextPrevStoredVisit)
			repeatCustomer = true
		}
	}
}

function newAsOf(authorDate,authorZoneOffset) {
	//var visitDate = new Date()
	authorDate = new Date(authorDate)
	//var authorOffset = 420
	var base = new Date()
	var localZoneOffset = base.getTimezoneOffset()
	var netOffset =  authorZoneOffset - localZoneOffset
	var itemUpdated = authorDate.getTime() - dateAdjustment + (netOffset * 60000)
	return ((itemUpdated > lastVisit) && repeatCustomer) ? "<img src='img/updated.gif' height='10' width='30' alt='New For You' />" : ""
}

initialize()
