var c;
var s;
var ss;
var str;
var indexOfIdStart;
var subStrOfId;
var indexOfIdEnd;
var linq;
var properties;
var t;
var chequed;

function writeListModels(cook,cid,make,model,year,chk) {
  c = getListModels(cook);
  if(c){
    if(c.indexOf(cid) != -1) {
      alert('Already in your list.');
      return false;
    } else {
      str = c + "/&/" + escape(cid) + ":&:" + escape(make) + ":&:" + escape(model) + ":&:" + escape(year) + ":&:" + escape(chk);
    }
  } else {
    str = escape(cid) + ":&:" + escape(make) + ":&:" + escape(model) + ":&:" + escape(year) + ":&:" + escape(chk);
  }

  setCookie(cook,str);
  b = getListModels(cook);
  document.getElementById('favModels').innerHTML = makeListModels(cook,b);
  return false;
}

function checkModels(cook,cid) {
  c = getListModels(cook);
  indexOfIdStart = c.indexOf(cid);
  subStrOfId = c.substring(indexOfIdStart);
  indexOfIdEnd = subStrOfId.indexOf('/&/');
  if(indexOfIdEnd == -1){
    if(indexOfIdStart == 0){
      s = subStrOfId;
    } else {
      s = c.substring(indexOfIdStart - 3);
    }
  } else {
    s = c.substring(indexOfIdStart,indexOfIdStart + indexOfIdEnd + 3);
  }
  
  if(s.indexOf('unchecked') > -1){
    ss = s.replace('unchecked','checked');
  } else {
    ss = s.replace('checked','unchecked');
  }
  str = c.replace(s,ss);
  setCookie(cook,str);
  return false;
}

function makeListModels(cook,m,template) {
  models = m.split('/&/')
  t = '';
  linq = '';
  if(m){
    for(var i = 0; i < models.length; i++){
      t = '';
      properties = '';
      properties = models[i].split(':&:');
      
      for (var j = 1; j < properties.length-1; j++) {
        t += properties[j] + ' ';//assemble make, model, year
      }
      chequed = properties[4];
      linq += '<input ' + chequed + ' type="checkbox" id="model_' + properties[0] + '" name="id' + i + '" value="' + properties[0] + '" onclick="checkModels(\'favo\',' + properties[0] + ');"> <a href="#" onclick="return delModels(\'favo\',' + properties[0] + ')">[X]</a> <a href="#" class="copyr" onclick="return updateVehicleSheet(' + properties[0] + ');">' + t + '</a><br>'
    }
  }
  if(models.length >= 2){
    document.getElementById('compareButton').style.display = 'block';
  } else {
    document.getElementById('compareButton').style.display = 'none';
  }
  return linq;
}
  
function getListModels(cook) {
  if (document.cookie.length > 0) {
    r_start = document.cookie.indexOf(cook + "=")
    if (r_start != -1) {
      r_start = r_start + cook.length + 1
      r_end = document.cookie.indexOf(";",r_start)
      if (r_end == -1) {
        r_end = document.cookie.length
      }
    return unescape(document.cookie.substring(r_start,r_end));
    }
  }
  return false
}

function delModels(cook,cid) {
  c = getListModels(cook);
  indexOfIdStart = c.indexOf(cid);
  subStrOfId = c.substring(indexOfIdStart);
  indexOfIdEnd = subStrOfId.indexOf('/&/');
  if(indexOfIdEnd == -1){
    if(indexOfIdStart == 0){
      s = subStrOfId;
    } else {
      s = c.substring(indexOfIdStart - 3);
    }
  } else {
    s = c.substring(indexOfIdStart,indexOfIdStart + indexOfIdEnd + 3);
  }
  str = c.replace(s,'');
  setCookie(cook,str);
  document.getElementById('favModels').innerHTML = makeListModels(cook,str);
  
  return false;
}

function setCookie(cook,str){
  var today = new Date();
  var expires = new Date(today.getTime() + (14 * 86400000));
  var path = "/";
  
  document.cookie = cook + "=" + str +
    ((expires) ? ";expires=" + expires.toGMTString() : "") +
    ((path) ? ";path=" + path : "");
}

function submitCompare(m){
  var fn = m.name;
  var of = document.forms[fn];
  var formElem = m.elements;
  var counter = 0;
  for(i = 0; i < formElem.length; i++){
    if (of.elements[i].type == 'checkbox' && of.elements[i].checked == true){
      counter += 1;
    }
  }
  if (counter < 2) {
    alert('Select at least 2 vehicles in your favorite list by clicking its checkbox.');
    return false;
  } else if (counter <= 4){
    of.submit(); 
  } else {
    alert('Select 4 vehicles at most.');
    return false;
  }
}

function loadList(){
  m = getListModels('favo')
  if(m){
    document.getElementById('favModels').innerHTML = makeListModels('favo',m)
  }
}