
function validateCookieBin(cookie) {

	if (checkCookie(cookie)) {

		var serialElementArray = getCookie(cookie);
		var elementArray = unserializeArray(serialElementArray);

		if (elementArray.length > 1) {
			return true;

		}else {
			alert("Please select at least two autos to compare.");
			return false;
		}

	}else {
		alert("Please select at least two autos to compare.");
		return false;

	}

}


function prefillCookieBin(cookie) {
	if (checkCookie(cookie)) {

		var serialElementArray = getCookie(cookie);
		var elementArray = unserializeArray(serialElementArray);

		for (var x = 0; x < elementArray.length; x++) {

			if (document.getElementById(elementArray[x])) {
				document.getElementById(elementArray[x]).checked = true;
			}

		}

	}
}


function controller(element, cookie) {
	
	if (checkCookie(cookie)) {

		if (element.checked) {
			
			var serialElementArray = getCookie(cookie);
			var elementArray = unserializeArray(serialElementArray);
		
			if (elementArray.length < 20) {

				elementArray = addElement(elementArray, element.value);
		
				serialElementArray = serializeArray(elementArray);
				setCookie(cookie, serialElementArray);

			}else {

				alert("You may compare up to 20 autos at time.");
				element.checked = false;

			}

		}else {

			removeElementFromCookie(element, cookie);
		
		}

	}else {

		elementArray = new Array();
		elementArray[0] = element.value;

		serialElementArray = serializeArray(elementArray);
		setCookie(cookie, serialElementArray);

	}

	return true;

}


function removeElementFromCookie(element, cookie) {

	var serialElementArray = getCookie(cookie);
	var elementArray = unserializeArray(serialElementArray);
			
	elementArray = deleteElement(elementArray, element.value);
			
	serialElementArray = serializeArray(elementArray);
	setCookie(cookie, serialElementArray);

}


function serializeArray(elementArray) {

  var serialElementArray = elementArray.join(";");

  return serialElementArray;

}


function unserializeArray(str) {

  var elementArray = str.split(";");

  return elementArray;

}


function getSize(str) {

  var elementArray = str.split(";");
  var size = elementArray.length;

  return size;

}


function setCookie(name, value) {

  document.cookie = name + "=" + escape(value) + "; path=/";

}


function getCookie(name) {

  if (document.cookie.length > 0) {

    cstart = document.cookie.indexOf(name + "=");

    if (cstart != -1) {

      cstart = cstart + name.length + 1;
      end = document.cookie.indexOf(";", cstart);

      if (end == -1) { end = document.cookie.length }

      return unescape(document.cookie.substring(cstart, end));
    }
  }
}


function checkCookie(name) {

  var cookieBin = getCookie(name);

  if (cookieBin != null) {
    return true;

  } else {
    return false;

  } 

}


function addElement(elementArray, value) {

  var length = elementArray.length;

	if (length == 1 && elementArray[0] == '') {

  	elementArray[0] = value;

	}else {

  	elementArray[length] = value;
	
	}

  return elementArray;

}


function deleteElement(elementArray, value) {

  var count = 0;
  var newElementArray = new Array();

  for (var x = 0; x < elementArray.length; x++) {

    if (elementArray[x] != value && elementArray[x] != (value + "spot")) {
     
      newElementArray[count] = elementArray[x];
			count++;

    }
  }

	return newElementArray;
} 

