
var expDays = 1;
var exp = new Date();
exp.setTime( exp.getTime() + ( expDays * 24 * 60 * 60 * 1000 ));
var clearexp = new Date();
clearexp.setTime( clearexp.getTime() - 10 );
clearexp.setDate (clearexp.getDate() - 10 );

function getCookieVal (offset) {
    var endstr = document.cookie.indexOf (";", offset);
    if (endstr == -1) {
	endstr = document.cookie.length;
    }
    return unescape(document.cookie.substring(offset, endstr));
}

function GetCookie (name) {
    //alert("name passed into GetCookie = " + name);
    /* old code
    //alert("expires = " + document.cookie.expires);
    var arg = name + "=";
    var alen = arg.length;
    var clen = document.cookie.length;
    var i = 0;
    while (i < clen) {
	var j = i + alen;
	if (document.cookie.substring(i, j) == arg) {
	    return getCookieVal (j);
	}
	i = document.cookie.indexOf(" ", i) + 1;
	if (i == 0) {
	    break;
	}
    }
    return null; */

    thisCookie = document.cookie.split("; ");
    //alert("GetCookie cookies.length = " + thisCookie.length);
    for (i=0; i < thisCookie.length; i++) {
        cookieName = thisCookie[i].split("=")[0];
        //alert("in GetCookie and cookieName " + cookieName);
        if (cookieName == name) {
            //alert("returning " + unescape(thisCookie[i].split("=")[1]));
	    return unescape(thisCookie[i].split("=")[1]);
        }
        //alert("<" + cookieName + "> is not equal to <" + name + ">");
    }
    return null;
    
}

function SetCookie (name, value) {
    //alert("in setCookie and name/value="+name+"/"+value);
    /* old code
    var argv = SetCookie.arguments;
    var argc = SetCookie.arguments.length;
    var expires = (argc > 2) ? argv[2] : null;
    var path = (argc > 3) ? argv[3] : null;
    var domain = (argc > 4) ? argv[4] : null;
    var secure = (argc > 5) ? argv[5] : false;
    document.cookie = name + "=" + escape (value)
		    + ((expires == null) ?
			"" : ("; expires=" + expires.toGMTString()))
		    + ((path == null) ? "" : ("; path=" + path))
		    + ((domain == null) ? "" : ("; domain=" + domain))
		    + ((secure == true) ? "; secure" : "");*/
    document.cookie = name + "=" + escape (value) + ";expires=" + exp.toGMTString() + ";path=";
}
	

function cookieForms() {

    var mode = cookieForms.arguments[0];

    for ( var f=1; f < cookieForms.arguments.length; f++) {
	formName = cookieForms.arguments[f];

	if ( mode == 'open' ) {	
	    cookieValue = GetCookie( 'saved_' + formName );
	    if ( cookieValue != null ) {
		var cookieArray = cookieValue.split( '#cf#' );
		if ( cookieArray.length == document[formName].elements.length ) {
		    for( i=0; i < document[ formName ].elements.length; i++) {
			if ( cookieArray[i].substring( 0, 6 ) == 'select') {
			    document[formName].elements[i].options.selectedIndex =
				cookieArray[i].substring(6,
				cookieArray[i].length+2);
			} else if (( cookieArray[i] == 'cbtrue')
				|| (cookieArray[i] == 'rbtrue')) {
			    document[ formName ].elements[i].checked = true;
			} else if (( cookieArray[i] == 'cbfalse')
				|| (cookieArray[i] == 'rbfalse')) {
			    document[ formName ].elements[ i ].checked = false;
			} else {
			    document[ formName ].elements[ i ].value
				= ( cookieArray[i]) ? cookieArray[i] : '' ;
			}
		    }
		}
	    }
	}

	if ( mode == 'save' ) {	
	    cookieValue = '';
	    for( var i=0; i < document[ formName ].elements.length; i++ ) {
		fieldType = document[ formName ].elements[ i ].type;
		
		if ( fieldType == 'password' ) {
		    passValue = '';
		} else if ( fieldType == 'checkbox' ) {
		    passValue = 'cb'+document[formName].elements[i].checked;
		} else if ( fieldType == 'radio' ) {
		    passValue = 'rb'+document[formName].elements[i].checked;
		} else if ( fieldType == 'select-one') {
		    passValue = 'select'
				+ document[ formName ].elements[ i ].options.selectedIndex;
		} else {
		    passValue = document[formName].elements[i].value;
		}
	
		cookieValue = cookieValue + passValue + '#cf#';
		// Remove last delimiter
	    }

	    cookieValue = cookieValue.substring( 0, cookieValue.length - 4 );
	
	    SetCookie( 'saved_' + formName, cookieValue, exp );		
            SetCookie( 'last_page', formName, exp);
	}	
    }
}

function clearCookies() {
    /* old code
    for ( var f=0; f < clearCookies.arguments.length; f++) {
        //alert("in for and clearCookies.arguments[f] = " + clearCookies.arguments[f]);
	formName = clearCookies.arguments[f];
        //alert(clearexp);
        alert("setting cookie = " + 'saved_' + formName + "=;expires=" + clearexp.toGMTString());
        document.cookie = 'saved_' + formName + "=;expires=" + clearexp.toGMTString();
        //alert("deleting cookie, cookie now = " + document.cookie);
	//SetCookie( 'saved_' + formName, 'wasted', clearexp );		
    }*/
    //clear all cookies
    thisCookie = document.cookie.split("; ");
    //alert("cookies.length = " + thisCookie.length);
    for (i=0; i < thisCookie.length; i++) {
        cookieName = thisCookie[i].split("=")[0];
        //alert("deleting " + cookieName);
        document.cookie = cookieName + "=; expires=" + clearexp.toGMTString() + ";path=";
    }
}

function setEditSearch() {
    SetCookie('edit_search', 'true', exp);
}

function clearEditSearch() {
    SetCookie('edit_search', 'false', exp);
}

function isFromEditSearch() {
    if (GetCookie('edit_search') == 'true')
	return true;
    else
        return false;
}

function getSearchPage() {
    //alert("in get search page");
    if (isFromEditSearch()) {
        var last_page = GetCookie('last_page');
        clearEditSearch();
        //alert(last_page);
        if (last_page == 'ONL')
            return 'online.frame.html';
        else if (last_page == 'CD')
            return 'cd.frame.html';
        else if (last_page == 'PRINT')
            return 'print.frame.html';
        else 
            return 'allsources.frame.html';
    }
    else {
        //alert("returning default");
        return 'allsources.frame.html';
    }
}

