function changeValue(input) {
 var msg = document.getElementById('msg');
 msg.innerHTML = input.name + ":" + input.id + ":" + input.value;
}

var customizeValues = new Array();

function loadValues() {
 var cookie = getCookie('trip');
 
 if (cookie == null) {
  return;
 }

 var form = document.customizeForm;


 var fieldTypes = cookie.split("|a");

 var textValue = fieldTypes[0];
 var values = textValue.split("|b");
 for (var a = 0; a < values.length; a++) {
  var value = values[a];
  if (value) {
   var nameValue = value.split("|c");
   var field = document.getElementById(nameValue[0]);
   if (field) {
    field.value = nameValue[1];
   }
  }
 } 

 var elements = form.elements;
 var checkboxes = new Array();
 for (var a = 0; a < elements.length; a++) {
  var element = elements[a];
  if (element.type == 'checkbox' || element.type == 'radio') {
   checkboxes[checkboxes.length] = element;
  }
 }
 var msg = 'msg:' + checkboxes.length + "\r\n";

 var checkValue = fieldTypes[1];
 msg += checkValue + "\r\n";
 var checkValues = checkValue.split("|b");

 for (var a = 0; a < checkValues.length; a++) {
  var checkboxValue = checkValues[a];
  for (var b = 0; b < checkboxes.length; b++) {
   var checkbox = checkboxes[b];
   if (checkbox.value == checkboxValue) {
    checkbox.checked = true;
   }
  } 
  msg += checkboxValue + "\r\n";
 }

 consolidateInterests();

 resetCheckboxes();

 //alert(msg);
}

function saveValues() {
 var form = document.customizeForm;
 var elements = form.elements;
 var cookie = '';
 var checkboxes = '';
 for (var a = 0; a < elements.length; a++) {
    var field = elements[a];
    
    if (field.type == 'text' || field.type == 'textarea') {
     var value = field.value;
     if (value) {
      value = value.replace("|", ":");
      var id = field.id;   
      cookie += id + "|c" + value;
     }
     cookie += "|b";     
    } else if ((field.type == 'checkbox' || field.type == 'radio') && field.checked) {
     checkboxes += field.value;
     checkboxes += "|b";
    }
 }

 cookie += "|a" + checkboxes;
 //alert(cookie);

 setCookie("trip", cookie);
}

function setCookie(name, value) {
	var today = new Date();
	var expire = new Date();		
	expire.setTime(today.getTime() + 3600000 * 24 * 365);
        value = escape(value);
	document.cookie = name + "=" + value + ";expires=" + expire.toGMTString() + ";path=/" + ";domain=" + document.location.hostname;
}

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));
}

/* Custom check box functions */

function resetCheckbox(parent) {
 var checkbox = updateCheckbox(parent, true);
 if (checkbox) {
  resetRadioButtons(checkbox);
 }
}

//  Toggle checkbox div to reflect check and set checked state of child input
function updateCheckbox(parent, flip) {
 var checkboxes = parent.getElementsByTagName('input');

  var checkbox = checkboxes[0];

   if ((checkbox.checked && flip) || (!checkbox.checked && !flip)) {
    parent.className = "checkbox";
    checkbox.checked = false;
   } else {
    parent.className = "checkboxChecked";
    checkbox.checked = true;
    if (checkbox.type == 'radio') {
     return checkbox;
    }
   }
}

// Initialize checkboxes to show check in checkboxes
function resetCheckboxes() {
 var divs = document.getElementsByTagName('div');
 for (var a = 0; a < divs.length; a++) {
  var box = divs[a];
  if (box.className == 'checkbox') {
   // Add mouse handler to checkbox divs to toggle check
   box.onclick = function() { resetCheckbox(this); };

   // Update checkbox div to reflect state of child checkbox
   updateCheckbox(box, false);
  }
 }
}

// Reset radio buttons
function resetRadioButtons(radio) {
 //alert('resetRadioButtons');
 var divs = document.getElementsByTagName('div');
 for (var a = 0; a < divs.length; a++) {
  var div = divs[a];
  if (div.className == 'checkboxChecked') {
   //alert(div.className);
   var checkboxes = div.getElementsByTagName('input');
   var checkbox = checkboxes[0];
   //alert(checkbox.type);
   if (checkbox.type == 'radio') {
    if (checkbox.name == radio.name) {
     if (checkbox.value != radio.value) {
      checkbox.checked = false;
      div.className = 'checkbox';
      //alert("off:" + radio.name + ":" + radio.value + "=" + radio.checked);
     } else {
      //alert("on:" + radio.name + ":" + radio.value + "=" + radio.checked);
     }
    }
   }
  }
 }
}
