﻿function MakeItem(id, name) {
    this.Id = id;
    this.Name = name;
}

function CountryItem(id, name, makes) {
    this.Id = id;
    this.Name = name;
    this.Makes = makes;
}

var data;

var objCountryList;
var objMakeList;

function FillMakeList() {
    var newCountryID = objCountryList.value;
    var oldValue = objMakeList.value;
    var hasSameMake = false;
    ClearOptions(objMakeList);
    for (var i = 0; i < data.length; i++) {
        if (data[i].Id == newCountryID) {
            for (var j = 0; j < data[i].Makes.length; j++) {
                var optn = document.createElement("OPTION");
                optn.value = data[i].Makes[j].Id;
                optn.text = data[i].Makes[j].Name;
                objMakeList.options.add(optn);

                if (!hasSameMake && optn.value == oldValue)
                    hasSameMake = true;
            }
            break;
        }
    }

    if (hasSameMake)
        objMakeList.value = oldValue;

    fireChange(objMakeList);
}

function ClearOptions(obj) {
    if (obj.options) {
    var num = obj.options.length;
    var i = 1;
    while (num > i) {
        obj.remove(1);
        i++;
    }
  }
}

function fireEvent(element, event) {
    if (document.createEventObject) {
        // dispatch for IE
        var evt = document.createEventObject();
        return element.fireEvent('on' + event, evt)
    }
    else {
        // dispatch for firefox + others
        var evt = document.createEvent("HTMLEvents");
        evt.initEvent(event, true, true); // event type,bubbling,cancelable
        return !element.dispatchEvent(evt);
    }
}

function fireChange(element) {
    return fireEvent(element, "change");
}

function ddCountry_changed() {
    createCookie("CountryId", objCountryList.value, 100);
    FillMakeList();
}

function ddMake_changed() {
    createCookie("MakeId", objMakeList.value, 100);
}