function TopCategory(id, title) {
    this.id = id;
    this.title = title;
    this.childCategorys = new Array();
    this.childOptions = new Array();
    this.addChildCategory = addChildCategory;
    this.option = new Option(this.title, this.id);
    if(this.id < 0){
    	this.option.style.color="#CCCCCC";
	}
    this.getChildOptions = getChildOptions;
}
//category methods
function Category(parent, id, title) {
    this.parent = parent;
    this.id = id;
    this.title = title;
    this.childCategorys = new Array();
    this.childOptions = new Array();
    this.addChildCategory = addChildCategory;
    this.option = new Option(this.title, this.id);
    if(this.id < 0){
    	this.option.style.color="#CCCCCC";
	}
    this.getChildOptions = getChildOptions;
    parent.addChildCategory(this);
}

//leafage category methods
function LeafCat(parent, id, title) {
    this.parent = parent;
    this.id = id;
    this.title = title;
    this.option = new Option(this.title, this.id);
    if(this.id < 0){
    	this.option.style.color="#CCCCCC";
	}
    parent.addChildCategory(this);
}

function addChildCategory(category) {
    this.childCategorys = this.childCategorys.concat(category);
    this.childOptions = this.childOptions.concat(category.option);
}

function getChildOptions() {
    return this.childOptions;
}


function changeTopCategory() {
	var selectedop=topCatForm.selectedIndex
	if(topCatForm2.selectedIndex>0){
			topCatForm2.selectedIndex=-1;
			changeTopCategory2();
			topCatForm.selectedIndex=selectedop;
		}
	secondCatForm.value = "";
    if (topCatForm.selectedIndex == -1 || (topCatForm.selectedIndex == 0 && beginIndex == 1)) {
        if (beginIndex == 1)
            topCatForm.options[0].selected = true;
        secondOptions = secondCatForm.options;
        var len = secondCatForm.options.length;
        for (var i = len - 1; i > beginIndex - 1; i--) {
            secondCatForm.options[i] = null;
        }
    }
    else {
	    var selectedTopCategory;
		for(var j =0;j<topCatArr.length;j++){
			if(topCatForm.options[topCatForm.selectedIndex].value == topCatArr[j].id){
				selectedTopCategory = topCatArr[j];
			} 
		}
        var secondOptions = selectedTopCategory.getChildOptions();
        var len = secondCatForm.options.length;
        for (var i = len - 1; i > beginIndex - 1; i--) {
            secondCatForm.options[i] = null;
        }
        for (var i = 0; i < secondOptions.length; i++) {
            secondCatForm.options[i + beginIndex] = secondOptions[i];
        }
    }
    if (beginIndex == 1)
        secondCatForm.options[0].selected = true;
    changeSecondCategory();
}


function changeTopCategory2() {
	var selectedop2=topCatForm2.selectedIndex
	if(topCatForm.selectedIndex>0){
			topCatForm.selectedIndex=-1;
			changeTopCategory();
			topCatForm2.selectedIndex=selectedop2;
		}
	secondCatForm2.value = "";
    if (topCatForm2.selectedIndex == -1 || (topCatForm2.selectedIndex == 0 && beginIndex == 1)) {
        if (beginIndex == 1)
            topCatForm2.options[0].selected = true;
        secondOptions2 = secondCatForm2.options;
        var len = secondCatForm2.options.length;
        for (var o = len - 1; o > beginIndex - 1; o--) {
            secondCatForm2.options[o] = null;
        }
    }
    else {
	    var selectedTopCategory2;
		for(var p =0;p<topCatArr.length;p++){
			if(topCatForm2.options[topCatForm2.selectedIndex].value == topCatArr[p].id){
				selectedTopCategory2 = topCatArr[p];
			} 
		}
        var secondOptions2 = selectedTopCategory2.getChildOptions();
        var len = secondCatForm2.options.length;
        for (var s = len - 1; s > beginIndex - 1; s--) {
            secondCatForm2.options[s] = null;
        }
        for (var x = 0; x < secondOptions2.length; x++) {
            secondCatForm2.options[x + beginIndex] = secondOptions2[x];
        }
    }
    if (beginIndex == 1)
        secondCatForm2.options[0].selected = true;
    changeSecondCategory2();
}


function changeSecondCategory() {
	leafCatForm.value = "";
    if (secondCatForm.selectedIndex == -1 || (secondCatForm.selectedIndex == 0 && beginIndex == 1)) {
        if (beginIndex == 1)
            secondCatForm.options[0].selected = true;
        var len = leafCatForm.options.length;
        for (var i = len - 1; i > beginIndex - 1; i--) {
            leafCatForm.options[i] = null;
        }
    }
    else {
        var option = secondCatForm.options[secondCatForm.selectedIndex];
        var thirdOptions = getSecondCategoryById(option.value).getChildOptions();
        var len = leafCatForm.options.length;
        for (var i = len - 1; i > beginIndex - 1; i--) {
            leafCatForm.options[i] = null;
        }
        for (var i = 0; i < thirdOptions.length; i++) {
            leafCatForm.options[i + beginIndex] = thirdOptions[i];
        }
    }
    if (beginIndex == 1)
        leafCatForm.options[0].selected = true;
	onChangeLeafCategory(leafCatForm)
}

function changeSecondCategory2() {
	leafCatForm2.value = "";
    if (secondCatForm2.selectedIndex == -1 || (secondCatForm2.selectedIndex == 0 && beginIndex == 1)) {
        if (beginIndex == 1)
            secondCatForm2.options[0].selected = true;
        var len = leafCatForm2.options.length;
        for (var i = len - 1; i > beginIndex - 1; i--) {
            leafCatForm2.options[i] = null;
        }
    }
    else {
        var option = secondCatForm2.options[secondCatForm2.selectedIndex];
        var thirdOptions = getSecondCategoryById(option.value).getChildOptions();
        var len = leafCatForm2.options.length;
        for (var i = len - 1; i > beginIndex - 1; i--) {
            leafCatForm2.options[i] = null;
        }
        for (var i = 0; i < thirdOptions.length; i++) {
            leafCatForm2.options[i + beginIndex] = thirdOptions[i];
        }
    }
    if (beginIndex == 1)
        leafCatForm2.options[0].selected = true;
	onChangeLeafCategory2(leafCatForm2)
}


function getSecondCategoryById(id) {
    for (var i = 0; i < topCatArr.length; i++) {
        var childCategorys = topCatArr[i].childCategorys;
        var len = childCategorys.length;
        for (var j = 0; j < len; j++) {
            if (childCategorys[j].id == id) {
                return childCategorys[j];
            }
        }
    }
}

//根据路径选择下拉列表的值

function initTopCategoryForm() {
    var size = topCatArr.length;
    for (var i = 0; i < size; i++) {
        topCatForm.options[i + beginIndex] = topCatArr[i].option;
    }
    changeTopCategory();
}

function onChangeTopCategory(obj){
	if(obj.name=="topCatFormKey"){
		changeTopCategory(obj);
	}
	else{
		changeTopCategory2(obj);
	}
	document.mainform.goods.length=1;
	document.mainform.goods.options.selectedIndex = -1;
	document.mainform.goods2.length=1;
	document.mainform.goods2.options.selectedIndex = -1;
}

function onChangeSecondCategory(obj){
	if(obj.name=="secondCatFormKey"){
		changeSecondCategory();
		onChangeLeafCategory(obj);
	}
	else{
		changeSecondCategory2();
		onChangeLeafCategory2(obj);
	}
}

function onChangeLeafCategory(obj){
	document.mainform.goods.length=1;
	document.mainform.goods.options.selectedIndex = -1;
	document.mainform.goods2.length=1;
	document.mainform.goods2.options.selectedIndex = -1;
	if(obj){
		//alert(obj.value)
	   //changeLeafCategory();
		var loca2 = obj.value
		for(i = 0;i < className.length;i ++) 
		{
			if (className[i].loca == loca2) 
			{
				loca3 = (className[i].locacity).split("|");
				document.mainform.goods.length = loca3.length+1;
				for(j = 0;j < loca3.length;j++) { 
					document.mainform.goods.options[j+1] = new Option(loca3[j].split("§")[0], loca3[j].split("§")[1]);
					//alert(loca3[j]+'\n'+loca3[j].split("§")[0]+'\n'+loca3[j].split("§")[1])
					for(var fff=0;fff<selectgoods.length;fff++){
						if (selectgoods[fff]==loca3[j].split("§")[1]){
							document.mainform.goods.options[j+1].style.color="#ccc"
							break;
							}
						}
				}
				break;
			}
		}
	}
}
function onChangeLeafCategory2(obj){
	if(obj){
		//alert(obj.value)
	   //changeLeafCategory();
		var loca2 = obj.value
		for(i = 0;i < className.length;i ++) 
		{
			if (className[i].loca == loca2) 
			{
				loca3 = (className[i].locacity).split("|");
				document.mainform.goods2.length = loca3.length+1;
				for(j = 0;j < loca3.length;j++) { 
					document.mainform.goods2.options[j+1] = new Option(loca3[j].split("§")[0], loca3[j].split("§")[1]);
					//alert(loca3[j]+'\n'+loca3[j].split("§")[0]+'\n'+loca3[j].split("§")[1])
					for(var fff=0;fff<selectgoods2.length;fff++){
						if (selectgoods2[fff]==loca3[j].split("§")[1]){
							document.mainform.goods2.options[j+1].style.color="#ccc"
							break;
							}
						}
				}
				break;
			}
		}
	}
}