//====================================
// DDL Cookie
//
//
// Version: 2.1
//
// Author:   Dawson Cowals
// Created:  06-26-2003
// Modified: 08-17-2009
//
//====================================


//--------------[Cookie Functions]-----------------
var TimePeriod = {"none":0,"minute":1,"hour":2,"day":3,"month":4,"year":5};

var _CookieTimePeriod = TimePeriod.year;
var _CookieDuration   = 1;
var _CookieDomain = '';
var _CookiePath = '/';
var _CookieSecure = '';

function setExpire(timePeriodType, duration) {
	var expires = new Date();
	
	switch (timePeriodType) {
		case TimePeriod.minute:
			expires.setMinutes(expires.getMinutes() + duration);
			break;
		case TimePeriod.hour:
			expires.setHours(expires.getHours() + duration);
			break;
		case TimePeriod.day:
			expires.setDate(expires.getDate() + duration);
			break;
		case TimePeriod.month:
			expires.setMonth(expires.getMonth() + duration);
			break;
		case TimePeriod.year:
			expires.setYear(expires.getFullYear() + duration);
			break;
	}

	expires.setMinutes(expires.getMinutes() + duration);

	return expires;
	
}

function setCookie(cookieName, cookieValue) {
    // document.cookie = cookieName + "=" + escape (value) + "; expires=" + expires.toGMTString() +  "; path=/";
    var expires = '';
    
    if (_CookieTimePeriod != TimePeriod.none) { 
			expires = setExpire(_CookieTimePeriod, _CookieDuration);
		}

    document.cookie = cookieName + "=" + escape(cookieValue) +
		((_CookieDomain.length > 0) ? ';domain=' + _CookieDomain : '') +
		((_CookiePath) ? ';path=' + _CookiePath : '') +
		((_CookieSecure) ? ';secure' : '') +
		((expires != '') ? ';expires=' + expires.toGMTString() : '');    
}

function getCookie (cookieName) {
    var cookie = document.cookie;
    var cookieHeader = cookieName + "=";
    var cookieLength = cookie.length;
    var position = 0;
        while (position < cookieLength) {
            var valueBegin = position + cookieHeader.length;
            if (cookie.substring(position, valueBegin) == cookieHeader) {
                var valueEnd = cookie.indexOf (";", valueBegin);
                if (valueEnd == -1) {
                    valueEnd = cookieLength;
                }
                return unescape(cookie.substring(valueBegin, valueEnd));
            }
            position = cookie.indexOf(" ", position) + 1;
            if (position == 0) {
                break;
            }
        }
    return null;
}

function unsetCookie(cookieName) {
    //var date = new Date();
    //date.setTime(date.getTime()-(24*60*60*1000));   //yesterday
    var expires = "; expires=Thu, 01-Jan-70 00:00:01 GMT";

    document.cookie = cookieName + "=" + expires;
}

//----------------------------------------------------------------------

function saveField(objID) {
	var cookieName = '';
	var cookieValue = '';
	var obj = document.getElementById(objID);
	var objType = new String(obj.type);
	
	switch(objType.toLowerCase()) {
		case "checkbox" :
			cookieName = obj.name;
			if (obj.checked) {
				cookieValue = '[1]';
			} else {
				cookieValue = '[0]';
			}
			break;
		case "undefined" :
			// a.k.a. radio field.
			for (var i = 0; i < obj.length; i++) {
				if (obj[i].checked){
					cookieName = obj[i].name;
					cookieValue = '[' + i + ']';
				}
			}
			break;
		case "select-one" :
			cookieName = obj.name;
			cookieValue = '[' + obj.selectedIndex + ']';
			break;
		case "select-multiple" :
			cookieName = obj.name;
			cookieValue = '[';
			for (var i = 0; i < obj.options.length; i++) {
				if (obj.options[i].selected) cookieValue += '+' + i
			}
			cookieValue += ']';
			break;
		default :
			// We assume all other fields will have
			// a valid obj.name and obj.value
			cookieName = obj.name;
			cookieValue = '[' + obj.value + ']';
	}
	
	setCookie(cookieName, cookieValue);
	
}

function loadField(objID) {
	var cookieValue = '';
	var realValue = '';
	var objName = '';
	var obj = document.getElementById(objID);
	var objType = new String(obj.type);
	
	if (obj.name) {
		objName = new String(obj.name);
	}	else {
		objName = new String(obj[0].name);
	}
		
	cookieValue = getCookie(objName);

	if (cookieValue != '') {
		realValue = cookieValue.substring(cookieValue.indexOf('[') + 1,cookieValue.indexOf(']'));
		
		switch(objType.toLowerCase()) {
			case "checkbox" :
				if (realValue == '1') obj.checked = 1
				else obj.checked = 0
				break;
			case "undefined" :
				obj[realValue].checked = 1;
				break;
			case "select-one" :
				obj.selectedIndex = realValue;
				break;
			case "select-multiple" :
				for (var i = 0; i < obj.options.length; i++) {
					if ((realValue.indexOf('+' + i)) > -1)
						obj.options[i].selected = 1;
					else
						obj.options[i].selected = 0;
				}
				break;
			default :
				obj.value = realValue;
		}
	}
	return true;
}