var xmlHttp;        //用于保存XMLHttpRequest对象的全局变量
var targetSelId;    //用于保存要更新选项的列表id
var targetCId;
var selArray;       //用于保存级联菜单id的数组
var xmlH;
var xmlSub;
var targetSId;

//用于创建XMLHttpRequest对象
function createXmlHttp() {
    //根据window.XMLHttpRequest对象是否存在使用不同的创建方式
    if (window.XMLHttpRequest) {
       xmlHp = new XMLHttpRequest();                  //FireFox、Opera等浏览器支持的创建方式
	   return xmlHp;
    } else {
		try{
			xmlHp = new ActiveXobject("Msxml2.XMLHTTP");
			return xmlHp;
		}catch(x){}
		try{
			xmlHp = new ActiveXObject("Microsoft.XMLHTTP");//IE浏览器支持的创建方式
			return xmlHp;
		}catch(x){}		
    }
}

//获取列表选项的调用函数
function buildSelect(selectedId, targetId,flag) {
    if (selectedId == "") {                             //selectedId为空串表示选中了默认项
        clearSubSel(targetId);                          //清除目标列表及下级列表中的选项
        return;                                         //直接结束函数调用，不必向服务器请求信息
    }
    targetSelId = targetId;                             //将传入的目标列表id赋值给targetSelId变量
    xmlHttp = createXmlHttp();                                    //创建XmlHttpRequest对象
    xmlHttp.onreadystatechange = buildSelectCallBack;   //设置回调函数
    xmlHttp.open("GET", "getinfo.jsp?cid=" + selectedId + "&flag=" + flag, true);
    xmlHttp.send(null);
}

//获取列表选项的回调函数
function buildSelectCallBack() {
    if (xmlHttp.readyState == 4) {
        var optionsInfo = eval("("+xmlHttp.responseText+")");           //将从服务器获得的文本转为对象直接量
        var targetSelNode = document.getElementById(targetSelId);
        //clearSubSel(targetSelId);                                    //清除目标列表中的选项
		clearOptions(targetSelNode);
        //遍历对象直接量中的成员
        for (var o in optionsInfo) {
            targetSelNode.appendChild(createOption(o, optionsInfo[o])); //在目标列表追加新的选项
        }
    }
}

//获取列表选项的调用函数
function buildContent(selectedId, targetId,flag) {
    if (selectedId == "") {                             //selectedId为空串表示选中了默认项
        clearSubSel(targetId);                          //清除目标列表及下级列表中的选项
        return;                                         //直接结束函数调用，不必向服务器请求信息
    }
    targetCId = targetId;                             //将传入的目标列表id赋值给targetSelId变量
    xmlH = createXmlHttp();                                    //创建XmlHttpRequest对象
    xmlH.onreadystatechange = buildContentCallBack;   //设置回调函数
    xmlH.open("GET", "getinfo.jsp?cid=" + selectedId + "&flag=" + flag, true);
    xmlH.send(null);
}

//获取列表选项的回调函数
function buildContentCallBack() {
    if (xmlH.readyState == 4) {
        var optionsInfo = eval("("+xmlH.responseText+")");           //将从服务器获得的文本转为对象直接量
        var targetSelNode = document.getElementById(targetCId);
			clearSubSel(targetCId);                                    //清除目标列表中的选项
        //遍历对象直接量中的成员
        for (var o in optionsInfo) {
            targetSelNode.appendChild(createOption(o, optionsInfo[o])); //在目标列表追加新的选项
        }
    }
}
function hasSub(id,targetId){
	if(id==""){
		var obj = document.getElementById(targetId);
		obj.style.display = "none";
		return;
	}
	targetSId = targetId;
	xmlSub = createXmlHttp();
	xmlSub.onreadystatechange = hasSubCallBack;   //设置回调函数
    xmlSub.open("GET", "getsub.jsp?cid=" + id , true);
    xmlSub.send(null);
}
function hasSubCallBack(){
	if (xmlSub.readyState == 4) {
        var info = xmlSub.responseText;           //将从服务器获得的文本转为对象直接量
        var targetNode = document.getElementById(targetSId);
		if(info=="true")
			targetNode.style.display = "";
		else
			targetNode.style.display = "none";
    }
}

//根据传入的value和text创建选项
function createOption(value, text) {
     var opt = document.createElement("option");                        //创建一个option节点
     opt.setAttribute("value", value);                                  //设置value
     opt.appendChild(document.createTextNode(text));                    //给节点加入文本信息
     return opt;
}

//清除传入的列表节点内所有选项
function clearOptions(selNode) {
	//try{
		selNode.length = 1;                                                 //设置列表长度为1，仅保留默认选项
		selNode.options[0].selected = true;                                 //选中默认选项	
	//}catch(e){}
}

//初始化列表数组（按等级）
function initSelArray() {
    selArray = arguments;                                               //arguments对象包含了传入的所有参数
}

//清除下级子列表选项
function clearSubSel(targetId) {
	//alert(targetId);
    var canClear = false;                                               //设置清除开关，初始值为假
	
    for (var i=0; i<selArray.length; i++) {                             //遍历列表数组
        if (selArray[i]==targetId) {                                    //当遍历至目标列表时，打开清除开关
            canClear = true;
        }
        if (canClear) {                                                 //从目标列表开始到最下级列表结束，开关始终保持打开
            clearOptions(document.getElementById(selArray[i]));         //清除该级列表选项
        }
    }
}

function init(){
	initSelArray('category1','series1','subseries1','model1','category2','series2','subseries2','model2','category3','series3','subseries3','model3');
	//buildSelect('36', 'category1','1')
}
var curlay = "";
function layshow(id,flag){
  initSelArray('category1','series1','subseries1','model1','category2','series2','subseries2','model2','category3','series3','subseries3','model3');
  if(id==1&&flag==1){
	  buildSelect('36','category1','1');
	  try{
		clearOptions(document.getElementById("series1"));
		clearOptions(document.getElementById("subseries1"));
		clearOptions(document.getElementById("model1"));
	  }catch(e){}
  }
  if(id==2&&flag==1){
	  buildSelect('37','category2','1');
	  try{
		clearOptions(document.getElementById("series2"));
		clearOptions(document.getElementById("subseries2"));
		clearOptions(document.getElementById("model2"));
	  }catch(e){}
  }
  if(id==3&&flag==1){
	  buildSelect('38','category3','1');
	  try{
		clearOptions(document.getElementById("series3"));
		clearOptions(document.getElementById("subseries3"));
		clearOptions(document.getElementById("model3"));
	  }catch(e){}
  }
  var news1Obj = document.getElementById('c' + curlay);
  if(news1Obj){
    news1Obj.style.display = 'none';
    document.getElementById('d' + curlay).className = 'card_dLd_off';
  }
  var obj = document.getElementById('c' + id);
  document.getElementById('d' + id).className = 'card_dLd_on';
  obj.style.display = '';
  curlay = id;  
  
}
