
var search_e = '';
  var accums = Array();
  accums[-1] = '____';
  var accum_texts = Array();
  accum_texts[-1] = '';
  var accum_ymms = Array();
  accum_ymms[-1] = '';
  var steps = Array(
    "car_years",
    "car_makes",
    "car_models",
    "ck",
    "code"
  );
  var truncate = false;
  var cur_text_ymm = Cookies.get('cookie_text_ymm', '');
  if (cur_text_ymm != '') {
  	truncate = true;
  	cur_text_ymm = unescape(cur_text_ymm);
	vals = cur_text_ymm.split('###');
	var cur_text = vals[0];
	var cur_ymm = vals[1];
  } 

  for(var i = 5; i <= 10; i++)
    steps[i] = 'question_' + i;
  var cur_step = 0;
  
  function xrequest(step) {
  	//alert("step" + step);
  	//alert('cur_text: ' + cur_text + ' cur_ymm: ' + cur_ymm);
    cur_step = step;
    if(cur_step >= 0)
      action = steps[cur_step];
    else
      action = '';
    last = (action == 'ck') ? cur_step - 1 : cur_step;
    if (truncate && step == 3) {
    	accum = '';
    	accum_text = cur_text;
    	accum_ymm = cur_ymm;
    } else {
	accum = accums[cur_step];
	accum_text = accum_texts[cur_step];
	accum_ymm = accum_ymms[cur_step];
    }
    do_request = true;
    drop_step = false;
    if(cur_step >= 0) {
      sel = steps[cur_step];
      if(sel != 'ck') {
        obj = search_e[sel];
        arr = obj.options[obj.selectedIndex].value.split(':');
        val = arr[0];
        text = arr[1];
        if(val == 0) {
          do_request = false;
          drop_step = true;
        }
        short_val = drop_last_four(val);
	accum = accum + val;
	accum_text += text;
	if(cur_step < 3)
	  accum_ymm += short_val;    
      }
    }
    accum_ymms[cur_step + 1] = accum_ymm;
    if(cur_step == 2) {
      accums[cur_step + 1] = accum;
      accum_texts[cur_step + 1] = accum_text;
    }
    if (cur_step == 4) {
      accum = accum.replace(/N/, accum_ymm);
    }
    if (action == 'car_models') {
      do_request = false;
    } else if (action == 'ck') {
      e_ck = search_e['ck'];
      for(var i = 0; i < 4; i++) {
          if(e_ck[i].checked) {
            ck = e_ck[i].value;
            i = 3;
          }
      }
      accum = ck;
      Cookies.set("cookie_text_ymm", accum_text + "###" + accum_ymm);	
    }
	//alert('accum: ' + accum + ' accum_text: ' + accum_text + ' accum_ymm: ' + accum_ymm);
    //disable();
    if(do_request) {
      new Ajax.Request('generic_request.php', {
        method: 'post',
        parameters: {accum: accum, accum_text: accum_text, accum_ymm: accum_ymm},
        requestHeaders: {Accept: 'application/json'},
        onSuccess: succ,
        onFailure: fail
      });
    } else {
      if (drop_step)
        cur_step--;
      enable();
    }
  }
  function succ(transport) {
        var res = transport.responseText.evalJSON(true);
        last = res['IsLastQuestion'];
        if(last == 'DONE' || last == 'YES') {
//	  accum_text = res['AccumText'];
//	  arr = accum_text.split('|');
//	  accum_text_arr = Array();
//	  n = 0
//	  for(i = 0; i < arr.length; i++) {
//	  	if(arr[i] != '' && arr[i] != '?') {
//			t = arr[i];
//	  		t = t.replace(/ |-/g, '_');
//	  		t = t.replace(/\W|\s/g, '');
//			accum_text_arr[n] = t;
//	  		n++;
//	  	}
//	  }
//	  accum_text = accum_text_arr.join('/');
//	  url = accum_text + '/keystone_products.php?code=' + res['Accum'];
	  url = 'http://www.atpcarboutique.com/keystone_products.php?code=' + res['Accum'];
          window.location.href = url;
          return;
        }
        opts = res['Options'];
        accums[cur_step + 1] = res['Accum'];
        if(res['AccumText'] == '____|')
            accum_texts[cur_step + 1] = '';
        else
            accum_texts[cur_step + 1] = res['AccumText'];
        sel = steps[cur_step + 1];
        if(sel == 'ck')
          return;
        e_sel = search_e[sel];
        e_sel.options.length = 0;
        cur_index = 0;
        if(cur_step != 3) {
          e_sel.options[0] = new Option("--Select One--", 0);
          cur_index++;  
        }
        
        for (k in opts) {
          v = opts[k];
          e_sel.options[cur_index] = new Option(v, k + ':' + v);
          cur_index++;
        }
        enable();
  }
  function fail() {
    alert('This search is temporarily unavailable.');
  }
  function disable() {
    max = steps.length;
    base_val = 0;
    if (truncate)
    	base_val = 3;
    for (var i = base_val; i < max; i++) {
      name = steps[i];
      obj = search_e[name];
      if(name == 'ck') {
        for(var j = 0; j < 4; j++) {
          obj[j].disabled = true;
        }
      } else
        obj.disabled = true;
      
      if(i >= 5 && i > cur_step) {
        disable_question(i);
      }
    }
    if(cur_step < 4)
      disable_questions();
  }
  function enable() {
    base_val = 0;
    if (truncate)
        base_val = 3;
    for (var i = base_val; i <= cur_step + 1; i++) {
      name = steps[i];
      obj = search_e[name];
      if(name == 'ck') {
        for(var j = 0; j < 4; j++) {
          obj[j].disabled = false;
        }
      } else {
        obj.disabled = false;
      }
    }
    if(cur_step >= 4) {
      enable_questions();
      enable_question(cur_step + 1);
    }
  }
  function enable_questions() {
    vis_set('question_div', 1);
  }
  function disable_questions() {
    vis_set('question_div', 0);
  }
  function enable_question(i) {
    vis_set('question_table_' + i, 1);
  }
  function disable_question(i) {
    vis_set('question_table_' + i, 0);
  }
  function drop_last_four(str) {
    len = str.length;
    len = len - 4;
    return str.substring(0, len);
  }
/*
  function check_values() {
    go = true;
    msg = '';
    for (var i = 0; i <= 4; i++) {
      name = steps[i];
      obj = search_e[name];
      if(obj.value == 0 || obj.value == '' || obj.value == null) {
        if(name == 'ck') {
          checked = false;
          for(var j = 0; j < 4; j++) {
            if(obj[j].checked) {
              checked = true;
              j = 3;
            }
          }
          if (checked)
            continue;
        } else if (name == 'code') {
          if (obj.selectedIndex >= 0)
            continue;
        }
        pretty = '';
        switch(i) {
          case 0:
            pretty = "your car's year.";
            break;
          case 1:
            pretty = "your car's make.";
            break;
          case 2:
            pretty = "your car's model.";
            break;
          case 3:
            pretty = "a main category.";
            break;
          case 4:
            pretty = "a general description.";
            break;
        }
        go = false;
        msg += "You must select " + pretty + "\n";
      }
    }
    if(!go)
      alert(msg);
    return go;
  }
*/
