// Remember the last selected auth realm for 30 days
function SetLastRealm(sValue) {
	var dtExpire = new Date();
	dtExpire.setDate(dtExpire.getDate() + 30);
    var ivsHex= GetCookieValue("DSIVS");
    document.cookie = "lastRealm" + ivsHex + "=" +
                      escape(sValue) + "; expires=" + dtExpire.toGMTString();
}

function Login(setLastRealm) {
    // Remember currently selected auth realm
    if (typeof(setLastRealm) == "number" && setLastRealm == 0) {
    }
    else
    if (document.frmLogin.realm != null && 
        document.frmLogin.realm.type == "select-one") {
        SetLastRealm(
            document.frmLogin.realm.options[document.frmLogin.realm.selectedIndex].text);
    }
    if (document.frmLogin.tz_offset != null) {
      var wdate = new Date (95, 12, 1);
      var sdate = new Date (95, 6, 1);
      var winter = (-1) * wdate.getTimezoneOffset();
      var summer = (-1) * sdate.getTimezoneOffset();
      document.frmLogin.tz_offset.value = winter < summer ? winter : summer;
    }
    return true;
}

// Get the value associated with sName in the document's cookies
function GetCookieValue(sName) {
	var s = document.cookie;
	sName += "=";

	// where nv pair starts
	var nStart = s.indexOf(sName);
	if (nStart == -1) 
		return "";
	else
		nStart += sName.length;
	
	// if more values, clip, otherwise just get rest of string
	var nEnd = document.cookie.indexOf(";", nStart);
	if (nEnd == -1)
		s = unescape(s.substring(nStart));
	else
		s = unescape(s.substring(nStart, nEnd));
	
	return s;
}

function recallLastRealmUsed() {
    if (document.frmLogin.realm != null && 
        document.frmLogin.realm.type == "select-one") {
        // try to remember which auth realm was last used
	var ivsHex = GetCookieValue("DSIVS");
        var sLastRealm = GetCookieValue("lastRealm"+ivsHex);
        if (sLastRealm.length > 0) {
            var cmb = document.frmLogin.realm;
            var nNumRealms = cmb.options.length;
            for (var n=0; n < nNumRealms; n++) {
                if (cmb.options[n].text == sLastRealm) {
                    cmb.selectedIndex = n;
                }
            }
        }
    }
}

function removeLastRealmCookie() {
    var ivsHex = GetCookieValue("DSIVS");
    var sLastRealm = GetCookieValue("lastRealm"+ivsHex);
    if (sLastRealm.length > 0) {
        document.cookie = "lastRealm" + ivsHex + "=; max-age=0";
    }
}

function FinishLoad(setLastRealm) {
    if (typeof(setLastRealm) == "number" && setLastRealm == 0) {
        removeLastRealmCookie();
    }
    else {
        recallLastRealmUsed();
    }
    if (document.frmLogin.username != null) {
       document.frmLogin.username.focus();
    }
}

