﻿var oTimeout;
var oTimeoutFinal;
var oTimeoutWarning;
var startTime = null;

function TimeoutWarning(){
    var d = GetCtrl("divTimeout", "div");
    if (d == null) return;
    
    window.clearInterval(oTimeoutWarning);
    
    if (startTime == null) {
        var s = GetCtrl("spnTimeout", "div");
        d.style.display = "inline";
        s.innerHTML = "300 ";
        window.scrollTo(0,0);
        startTime = new Date();
        oTimeout = window.setInterval(TimeoutUpdateSeconds, 500);
        oTimeoutFinal = window.setInterval(Timeout, 305000);
        window.focus();
    }
}
function TimeoutUpdateSeconds(){
    var s = GetCtrl("spnTimeout", "div");
    var secondsLeft = parseInt((300 - ((new Date().getTime() - new Date(startTime).getTime()) / 1000)));
    s.innerHTML = parseInt(secondsLeft) + " ";
    if (parseInt(secondsLeft) == 30) window.focus();
    if (parseInt(secondsLeft) < 1) Timeout();
}
function Timeout(){
    window.clearInterval(oTimeout);
    window.clearInterval(oTimeoutFinal);
	window.navigate(document.URL.substr(0, document.URL.lastIndexOf("/") + 1) + "logout.aspx"); 
}

function body_onload() {
	// if (window.location.href.toLowerCase().indexOf("login.aspx") == -1) {
		// oTimeout = window.setInterval("Timeout()", 301000); // 1740000
	// 	oTimeoutWarning = window.setInterval("TimeoutWarning()", 1200000); // 1440000 1200000
	// }
	
	window.onscroll = body_onscroll;
	
	var hdn = GetInputCtrl("hdnScroll");
	if (hdn) if (hdn.value != "") { window.scrollTo(0, hdn.value); hdn.value = ""; }

	hdn = GetCtrl("divText");
	if (hdn != null) {
	    var sh = hdn.scrollHeight;
	    hdn.style.height = (sh < 195 ? "205px" : "auto");
	}
	
	hdn = GetInputCtrl("hdnAlertMsg");
	if (hdn) if (hdn.value != "") { alert(hdn.value); hdn.value = ""; }
	
	hdn = GetInputCtrl("hdnConfirmMsg");
	if (hdn) {
		if (hdn.value != "") {
			var response = confirm(hdn.value);
			hdn.value = "";
			
			var ConfirmType = response;
			hdn = GetInputCtrl("hdnConfirmType");
			if (hdn != null) ConfirmType = hdn.value;
				
			if (response == true) {
				__doPostBack('ConfirmMessage', ConfirmType);
			}
			else {
				if (hdn) hdn.value = "";
				
				if (document.scripts("main") != null)
					if (document.scripts("main").text.indexOf("Confirm_Cancel") != -1)
						Confirm_Cancel();
			}
		}
	}
	
	hdn = GetInputCtrl("hdnConfirmMsg");
	if (hdn) {
		if (hdn.value != "") {
			var response = confirm(hdn.value);
			hdn.value = "";
			
			var ConfirmType = response;
			hdn = GetInputCtrl("hdnConfirmType");
			if (hdn != null) ConfirmType = hdn.value;
				
			if (response == true) {
				__doPostBack('ConfirmMessage', ConfirmType);
			}
			else {
				if (hdn) hdn.value = "";
				
				if (document.scripts("main") != null)
					if (document.scripts("main").text.indexOf("Confirm_Cancel") != -1)
						Confirm_Cancel();
			}
		}
	}
	CheckChangeImg();
}

function GetInputCtrl(ctrlID) {
    if (!ctrlID) return;
    var c = document.getElementById(ctrlID);
    if (c == null) c = GetCtrlSimple(ctrlID, "input");
    return c;
}
function GetTableCtrl(ctrlID) {
    if (!ctrlID) return;
    var c = document.getElementById(ctrlID);
    if (c == null) if (c == null) c = GetCtrlSimple(ctrlID, "table");
    return c;
}
function GetContainerCtrl(ctrlID) {
    if (!ctrlID) return;
    var c = document.getElementById(ctrlID);
    if (c == null) c = GetCtrlSimple(ctrlID, "span");
    if (c == null) c = GetCtrlSimple(ctrlID, "div");
    if (c == null) c = GetCtrlSimple(ctrlID, "td");
    if (c == null) c = GetCtrlSimple(ctrlID, "table");
    if (c == null) c = GetCtrlSimple(ctrlID, "tr");
    return c;
}
function GetCtrl(ctrlID, tagName, debug) {
    if (!ctrlID) return;
    var c = document.getElementById(ctrlID);
    if (c == null) {
        if (tagName != null)
            c = GetCtrlSimple(ctrlID, tagName);
        else {
            c = GetInputCtrl(ctrlID);
            if (c == null) c = GetContainerCtrl(ctrlID);
            if (c == null) c = GetTableCtrl(ctrlID);
            if (c == null) c = GetCtrlSimple(ctrlID, "select");
            if (c == null) c = GetCtrlSimple(ctrlID, "textarea");
        }
    }
    return c;
}
function GetCtrlSimple(ctrlID, tagName) {
    var c = null;
    var a = document.getElementsByTagName(tagName);
    for (var i = 0; i < a.length; i++)  
        if (a[i].id != null) { 
            var loc = a[i].id.length - ctrlID.length; 
            if (a[i].id == ctrlID || (loc > 0 && a[i].id.indexOf("_" + ctrlID) == loc - 1) || (loc > 0 && a[i].id.indexOf(":" + ctrlID) == loc - 1)) {
                c = a[i]; break; 
            }
        }
    return c;
}

function CheckChangeImg() {
	hdn = GetInputCtrl("hdnChangeFlag");
	if (hdn) if (hdn.value == "true") { var img = GetCtrl("imgSave", "img"); if (img) img.src = "css/SaveReady.gif"; }
}
function SetChangeFlag(ctrlID)
{
	ctrl = GetInputCtrl("hdnChangeFlag");
	if (ctrl != null) ctrl.value = "true"; // else alert("Control not found.");
	CheckChangeFlag();
}

function CheckChangeFlag(ctrlID)
{
	ctrl = GetInputCtrl("hdnChangeFlag");
	var a = GetCtrl("btnSavePageData", "a");
	var img = GetCtrl("imgSave", "img"); 
	if (!img || !a) return;
	if (ctrl.value == "true") {
		img.src = "css/Save.gif";
		a.href = "javascript:__doPostBack('SavePageData','');";
		img.onmouseover = SaveOverOn;
		img.onmouseout = SaveOutOn;
	} else {
		img.src = "css/SaveNotReady5.gif";
		a.href = "";
		img.onmouseover = SaveOverOff;
		img.onmouseout = SaveOutOff;
	}
}
function SaveOverOn() { BtnImg(this,'css/SaveOver.gif'); }
function SaveOutOn() { BtnImg(this,'css/Save.gif'); }
function SaveOverOff() { BtnImg(this,'css/SaveNotReady5.gif'); }
function SaveOutOff() { BtnImg(this,'css/SaveNotReady5.gif'); }

function PostBack(eventTarget, eventArgument) {
	// try { __doPostback(eventTarget, eventArgument); }
	// catch(ex) {
		var theform = document.forms[0];
		try {var a = theform.__EVENTTARGET; } catch(ex) { CreateHidden("__EVENTTARGET", theform); }
		try {var a = theform.__EVENTARGUMENT; } catch(ex) { CreateHidden("__EVENTARGUMENT", theform); }
		GetInputCtrl("__EVENTTARGET").value = eventTarget.split("$").join(":");
		GetInputCtrl("__EVENTARGUMENT").value = eventArgument;
		theform.submit();
	// }
}

function CheckDivCtrlState(hdnDivStateID, imgDivStateID, theDivID, DefaultSize, UpImg, DownImg, HideFlag, MinSize) {
    var hdn = GetInputCtrl(hdnDivStateID);
    var img = GetCtrl(imgDivStateID, "img");
    var div = GetCtrl(theDivID, "div");
    if (DefaultSize == "0") DefaultSize = "auto";
	if (hdn != null && img != null && div != null) {
		if (hdn.value == "Up")
		{ hdn.value = "Up"; img.src = UpImg; div.style.height = "auto"; }
		else {
		    hdn.value = "Dn"; img.src = DownImg;
		    div.style.height = ((div.scrollHeight + 4 < DefaultSize && MinSize != null) ? "auto" : DefaultSize)
			if (HideFlag && div.scrollHeight == 0) { div.style.display = "none"; }
		}
	}
}

function DivStateChange(hdnDivStateID, imgDivStateID, theDivID, hdnScrollID, DefaultSize, UpImg, DownImg, HideFlag)
{
	if (hdnScrollID != "" && hdnScrollID != "table")
		if (GetInputCtrl(hdnDivStateID) != null)
			GetInputCtrl(hdnScrollID).value = 0;
			
	if (UpImg == null) UpImg = "css/Textured_DarkGrn3_ButtonUp.gif";
	if (DownImg == null) DownImg = "css/Textured_DarkGrn3_ButtonDown.gif";
			
	var hdn = GetInputCtrl(hdnDivStateID);
	var div = GetCtrl(theDivID, "div");
	var img = GetCtrl(imgDivStateID, "img");
	
	if (hdn.value == "Up")
	{
		hdn.value = "Dn";
		img.src = DownImg;
		if (!HideFlag) div.style.height = DefaultSize; else div.style.display = "none";
	}
	else
	{
		hdn.value = "Up";
		img.src = UpImg;
		if (!HideFlag) div.style.height = "auto"; else div.style.display = "inline";
	}
}
function CheckScroll(hdnScrollID, divID)
{
    var hdn = GetInputCtrl(hdnScrollID);
    var div = GetCtrl(divID, "div");
	if (hdn != null && div != null) if(hdn.value != "") { div.scrollTop = hdn.value; }
}
function HandleScroll(hdnScrollID, divID)
{ GetInputCtrl(hdnScrollID).value = GetCtrl(divID, "div").scrollTop; }

function body_onscroll() {
	GetInputCtrl("hdnScroll", "input").value = document.documentElement.scrollTop;
}

function checkReturn(CallFunction) { 
    if (event.keyCode == 13)	{__doPostBack(CallFunction,'');}
}
function CheckFilterReturn(GridName,CtrlID) { 
	if (event.keyCode == 13)	{ __doPostBack("GridFilter" ,GridName + ":" + CtrlID); }
}
function DoNothing() {}
function BtnImg(btn, img)
{
	if (btn != null) btn.src = img;
}

function SetGridFlag(gridID, ctrl, hdnID)
{
	var grid = GetTableCtrl(gridID);
	var row = ctrl.parentNode;
	var loop = 0;
	while ((row.tagName.toLowerCase() != "tr" || row.parentNode.parentNode.id.indexOf(gridID) == -1) && loop < 10)	{ row = row.parentNode; loop++;}
	if (loop == 10) alert("An error occurred.  This form may not auto-save.");
	var c = row.getElementsByTagName("input");
    var found = false;
	for (var i = 0; i < c.length; i++)
		if (c[i].id.indexOf("_" + hdnID) != -1)	{ c[i].value = "true"; found = true; break; }
    if (!found) alert("An error occurred (SetGridFlag).  This form may not save properly.");
}
function GridTagImg(img, hdnID, OffImg, OnImg, gridFlag, GridID, row, GridChgFlagID) {
	var hdn = (gridFlag ? GetRowControl(row, "input", hdnID) : GetInputCtrl(hdnID));
	if (hdn.value == "true") {
		img.src = OffImg;
		hdn.value = "";
	}
	else {
		img.src = OnImg;
		hdn.value = "true";
	}
	if (gridFlag) SetGridFlag(GridID, img, GridChgFlagID);
	SetChangeFlag();
}
function GridMouseImg(img, hdnID, OffImg, OnImg, gridFlag, GridID, row, GridChgFlagID) {
	var hdn = (gridFlag ? GetRowControl(row, "input", hdnID) : GetInputCtrl(hdnID));
	var check = -1;
	if (window.event.shiftKey) check = 1;
	if (window.event.ctrlKey) check = 0;
	
	if (check == 0) {
		img.src = OffImg;
		hdn.value = "";
		SetChangeFlag();
		if (gridFlag) SetGridFlag(GridID, img, GridChgFlagID);
	}
	if (check == 1) {
		img.src = OnImg;
		hdn.value = "true";
		SetChangeFlag();
		if (gridFlag) SetGridFlag(GridID, img, GridChgFlagID);
	}
}
function GetRowControl(row, tagName, ctrlID)
{
	var c = row.getElementsByTagName(tagName);
	var idLen = ctrlID.length;
	for (var i = 0; i < c.length; i++)
	{
		var loc = c[i].id.indexOf(ctrlID);
		if (loc != -1)
			if ((loc + idLen) == c[i].id.length)    return c[i];
	}
	return null;
}

function GridPager(pType, gridID, pagerID) { __doPostBack("GridPager", pType + ":" + gridID + ":" + pagerID); }
function GridPagerChange(txt, gridID, pagerID) { __doPostBack("GridPager", txt.value + ":" + gridID + ":" + pagerID); }
