// -----------------------------------------------------//
// SAVE Hidden Div Selections in Cookies 		        //
// Written by Ben Haley	                                //
// Date written: February 12, 1009			            //
// Email: benjamin.haley@gmail.com			            //
// -----------------------------------------------------//

// instructions:
// ------------
// Change <BODY>
// to <BODY onunload="saveHiddenDivs( [hidden div names, 2, 3, etc.] )"> and
// Change </FORM>
// TO </FORM><SCRIPT language=JavaScript type="">loadSelections( [hidden div names, 2, 3, etc] );</SCRIPT>
//

//
// ------------------------------------------------
// This function will concatentate all the fields in
// in the form into one string, delimited by a PIPE
// symbol, into one cookie. The cookie name is the
// same name as the form name. ALL fields are saved.
// ------------------------------------------------
//


function saveHiddenDivs(names) {
    var setvalue;
    var index;

    // Expire cookie in 5 minutes.
    var today = new Date();
    var exp   = new Date(today.getTime()+30*60*1000);
    
    var string = "";
    var cookieName = 'hiddenDivs';
    var n = names.length;
    for (i = 0; i < n; i++){
        name        = names[i];
        value       = document.getElementById(names[i]).style.display;

        string += name + "\|" + value + "\|"
    }

setCookie(cookieName, string, exp); }

//
// LOAD standard form
//


//
// LOAD FORM FIELD SELECTIONS FROM SAVED COOKIES
//


function loadHiddenDivs(names) {
var cookieName  = 'hiddenDivs';
var cookie;
var fieldValues;

// Retrieve form elements from cookie and split into array.

try{fieldValues = getCookie(cookieName);}
catch(ex){ return 'no cookie'}
try{cookie  = fieldValues.split("\|");}
catch(ex){ return 'no cookie'}

    var n = cookie.length;
    for (i = 0; i < n - 1; i += 2) {
        name    = cookie[i];   
        value   = cookie[i + 1];
        document.getElementById(name).style.display = value;
    }
}

/// COOKIE FUNCTIONS

function setCookie(name, value, expires, path, domain, secure) {
document.cookie= name + "=" + escape(value) +
((expires) ? "; expires=" + expires.toGMTString() : "") +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
((secure) ? "; secure" : "");
}

function getCookie(name) {
var dc = document.cookie;
var prefix = name + "=";
var begin = dc.indexOf("; " + prefix);
if (begin == -1) {
begin = dc.indexOf(prefix);
if (begin != 0) return null;
} else {
begin += 2;
}
var end = document.cookie.indexOf(";", begin);
if (end == -1) {
end = dc.length;
}
return unescape(dc.substring(begin + prefix.length, end));
}
