<!--

 /*

 Author: Alex Osipov (alex@acky.net)
 Publisher: ACKY.NET
 */
 // Global variables.
 domain = '';
 path = '/';
 secure = 0;

 // Function to save a field.
 function save_field(obj) {
 var cookie_value = '';
 var objType = new String(obj.type);
 switch(objType.toLowerCase()) {
 case "checkbox" :
 if (obj.checked) cookie_value = obj.name + '=[1]'
 else cookie_value = obj.name + '=[0]'
 break;
 case "undefined" :
 // a.k.a. radio field.
 for (var i = 0; i < obj.length; i++) {
 if (obj[i].checked) cookie_value = obj[i].name + '=[' + i + ']'
 }
 break;
 case "select-one" :
 cookie_value = obj.name + '=[' + obj.selectedIndex + ']';
 break;
 case "select-multiple" :
 cookie_value = obj.name + '=[';
 for (var i = 0; i < obj.options.length; i++) {
 if (obj.options[i].selected) cookie_value += '+' + i
 }
 cookie_value += ']';
 break;
 default :
 // We assume all other fields will have
 // a valid obj.name and obj.value
 cookie_value = obj.name + '=[' + obj.value + ']';
 }
 if (cookie_value) {
 var expires = new Date();
 expires.setYear(expires.getYear() + 1);
 document.cookie = cookie_value +
 ((domain.length > 0) ? ';domain=' + domain : '') +
 ((path) ? ';path=' + path : '') +
 ((secure) ? ';secure' : '') +
 ';expires=' + expires.toGMTString();
 }
 return 1;
 }

 // Function to retrieve a field.
 function retrieve_field(obj) {
 var cookie = '', real_value = '';
 cookie = document.cookie;
 var objType = new String(obj.type);
 if (obj.name)
 var objName = new String(obj.name);
 else
 var objName = new String(obj[0].name);
 var offset_start = cookie.indexOf(objName + '=[');
 if (offset_start == -1) return 1;
 var offset_start_length = objName.length + 2;
 offset_start = offset_start + offset_start_length;
 var offset_end = cookie.indexOf(']', offset_start);
 real_value = cookie.substring(offset_start, offset_end);
 switch(objType.toLowerCase()) {
 case "checkbox" :
 if (real_value == '1') obj.checked = 1
 else obj.checked = 0
 break;
 case "undefined" :
 obj[real_value].checked = 1;
 break;
 case "select-one" :
 obj.selectedIndex = real_value;
 break;
 case "select-multiple" :
 for (var i = 0; i < obj.options.length; i++) {
 if ((real_value.indexOf('+' + i)) > -1)
 obj.options[i].selected = 1;
 else
 obj.options[i].selected = 0;
 }
 break;
 default :
 obj.value = real_value;
 break;
 }
 return 1;
 }
 // End JavaScript -->


