var Models	 = new Array();
var ModelIDs = new Array();
var Make     = new Array();
var MakeID   = new Array();
var MakeCheckFlag = false;
var modelwalk = "0";
var obj = "";
var see_all_flag=0;

function getMakes(pos, loadMake, index) {
  modelwalk = (pos != null) ? pos : modelwalk;
  obj = document.forms[modelwalk];
  if (loadMake == "true") {
    var selectedModel = obj.model.selectedIndex;
    LoadModels(obj.make.selectedIndex, obj, index);
    obj.model.selectedIndex = selectedModel;
    return;
  }
  for	(var i=0; i<Make.length; i++)
	obj.make.options[i+1]	= new Option(MakeID[i], Make[i], false, false);
	obj.make.options[0].selected = true;
    ChangeDivision(0, modelwalk, index);
}

function ClearList(OptionList, TitleName) {
		OptionList.length =	0;
		OptionList.options[0] =	new Option(TitleName, '-1', 1, 1);
}

function LoadModels(pos, obj, index){
    if (pos > 0) {
        if (index > 1) {
         obj.model.options[0] = new Option("Select A Model", -1, 0, 0);
		 if(!see_all_flag)
         obj.model.options[1] = new Option("See ALL Models", -2, 0, 0);
		 else
		  index=index-1;
        }
        var CurrentModels = Models[pos-1].split(',');
        var CurrentModelIDs = ModelIDs[pos - 1].split(',');
        for (var i=0; i<CurrentModels.length; i++)
            obj.model.options[i+index] = new Option(CurrentModels[i], CurrentModelIDs[i], 0, 0);
            obj.model.options[0].selected =  true;
      }
}

function ChangeDivision(CalledFromOnLoad, pos, index) {
        obj = document.forms[pos];
		var	CurrModel = obj.model.selectedIndex;
		var	SelectedMake  = obj.make.options[obj.make.selectedIndex].value;
		//dl see if we have a model or a type
		if(SelectedMake.substring(0, 5) == "type-"){
			top.location.href="/researchcenter/browse_all_summary?type=" + SelectedMake.substring(5);
			return;
		} else if(SelectedMake == "null"){
			ClearList(obj.model, 'Select A Model');
			index = 0;
			return;
		}
		ClearList(obj.model, 'Select A Model');
		LoadModels(obj.make.selectedIndex, obj, index);	   
		if (SelectedMake ==	"") MakeCheckFlag =	false;
		if (CalledFromOnLoad ==	1) obj.model.selectedIndex	= CurrModel;
			
}


function MakeCheck() {
  var SelectedMake  = obj.make.options[obj.make.selectedIndex].value;  
  if (SelectedMake == "" && MakeCheckFlag == false)  {
  	    alert('Please select a make first.');
		MakeCheckFlag =	true;
				return;
  }
}

function getSelectedMake(loadMake) {
  for (var i=0; i<Make.length; i++) {
    if (loadMake == Make[i]) return i + 1;
  }
  return 0;
}

function getSelectedModel(selectedMake, loadModel, index) {
  if (loadModel == -2) return 1;
  var CurrentModelIDs = ModelIDs[selectedMake-1].split(',');
  for (var i=0; i<CurrentModelIDs.length; i++) {
    if (loadModel == CurrentModelIDs[i]) return i + ((index < 2) ? 1 : 2);
  }
  return 0;
}

function resetMakeModel(pos, loadMake, loadModel, index) {
  modelwalk = (pos != null) ? pos : modelwalk;
  obj = document.forms[modelwalk];
  var selectedMake = obj.make.selectedIndex;
  var selectedModel = obj.model.selectedIndex;
  if (selectedMake > 0) {
    LoadModels(selectedMake, obj, index);
    obj.model.selectedIndex = selectedModel;
    return;
  }
  if (loadMake != "") {
    selectedMake = getSelectedMake(loadMake);
    obj.make.selectedIndex = selectedMake;
    LoadModels(selectedMake, obj, index);
    if (loadModel != "") {
      selectedModel = getSelectedModel(selectedMake, loadModel, index);
      obj.model.selectedIndex = selectedModel;
    }
  }
  return;
}

