var MINUTES_UNTIL_POPUP = 28;
var MINUTES_UNTIL_SESSION_TIME_OUT = 30;

var lastAccessed = new Date();
var now = (new Date()).getTime();

var isCountDownOn = true;
var maxInactive = 60*MINUTES_UNTIL_SESSION_TIME_OUT;
var stoStr = (maxInactive/60) + " minutes";

var timeoutAt = lastAccessed.getTime() + (maxInactive*1000);
var popupAt = lastAccessed.getTime() + (60*MINUTES_UNTIL_POPUP*1000);

var localTime = new Date();
var undefined;

function resetCountDownAndStart(w) {
	w.isCountDownOn = true;
	w.lastAccessed = new Date();
	w.now = (new Date()).getTime();
	w.timeoutAt = lastAccessed.getTime() + (maxInactive*1000);
	w.popupAt = lastAccessed.getTime() + (60*MINUTES_UNTIL_POPUP*1000);
	var sessionTimeOutWarn = w.document.getElementById("sessionTimeOutWarning");
	sessionTimeOutWarn.style.visibility = "hidden";
	w.checkTimeForSessionPopUp();
}

function restartOpener() {
	resetCountDownAndStart(window.opener);
}

function openWinAndStop(url,w,h,r,s,t,l,left,top) {
	isCountDownOn = false;
	var sessionTimeOutWarn = document.getElementById("sessionTimeOutWarning");
	sessionTimeOutWarn.style.visibility = "hidden";
	OpenWin(url,w,h,r,s,t,l,left,top);
}

function isOpener() {
	if(window.opener == null) {
		return false;
	} else {
		//alert(window.opener.location.href);
		return true;
	}
}

function checkTimeForSessionPopUp() {
	now = (new Date()).getTime();
	if(isCountDownOn) {
		if(now >= popupAt) {
			if(isCountDownOn) {
				//pop up window
				
				//calculate scroll
				var scroll = 0;
				if(window.pageYOffset === undefined) {
					scroll = document.body.scrollTop + 60;
				} else {
					scroll = window.pageYOffset + 60;
				}
				
				//get session warn popup
				var sessionTimeOutWarn = document.getElementById("sessionTimeOutWarning");
				
				if(sessionTimeOutWarn == undefined) {
					//alert("session time out warn div does not exist");
				} else {
					window.focus();
					
					//hide drop downs and embeds
					var selectAr = document.getElementsByTagName("select");
					for(i=0;i<selectAr.length;i++) {
						selectAr[i].style.visibility = "hidden";
					}
					
					var selectAr = document.getElementsByTagName("embed");
					for(i=0;i<selectAr.length;i++) {
						selectAr[i].style.visibility = "hidden";
					}
					
					var selectAr = document.getElementsByTagName("object");
					for(i=0;i<selectAr.length;i++) {
						selectAr[i].style.visibility = "hidden";
					}
			
					sessionTimeOutWarn.style.visibility = "visible";
					sessionTimeOutWarn.style.top = scroll + "px";
				}
				
				getTimeString();
			}
			
		} else {
			//now = now + reloadAt;
			setTimeout("checkTimeForSessionPopUp()", 1000);
			//updateStatus();			
			//checkIfParent();
		}
	}
}

function updateStatus() {
	var nowP = new Date(now);
	var popupAtP = new Date(popupAt);
	var logoutAtP = new Date(timeoutAt);

	status = "Now: " + nowP.getHours()+":"+nowP.getMinutes()+":"+nowP.getSeconds() + 
			 " PopUp at: "  + popupAtP.getHours()+":"+popupAtP.getMinutes()+":"+popupAtP.getSeconds() + 
			 " Logout At: " + logoutAtP.getHours()+":"+logoutAtP.getMinutes()+":"+logoutAtP.getSeconds();
}

function getTimeString() {
	var timeLeftDiv = document.getElementById("timeLeft");
	
	now = (new Date()).getTime();
	if(isCountDownOn) {
		if(now < timeoutAt) {
			var countDownDate = new Date(timeoutAt - now);
			var minutes = countDownDate.getMinutes();
			var seconds = countDownDate.getSeconds();
			
			var minuteText = (minutes > 1)?minutes + " minutes and ":(minutes == 1)?minutes + " minute and ":"";
			if(timeLeftDiv == undefined) {
			} else {
				timeLeftDiv.innerHTML = "In order to continue your session and remain logged in please respond in <b>" + minuteText + seconds + " seconds.</b>";
				//new Date(timeoutAt) + "<Br>" + 
				//new Date(now); 
			}				
			//now = now + 1000;
			setTimeout("getTimeString()",1000);
			//updateStatus();
			//checkIfParent();

		} else {
			logout();
		}
	}
}

