var xmlHttp;

function createXMLHttpRequest() {
    if (window.ActiveXObject) {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    } 
    else if (window.XMLHttpRequest) {
        xmlHttp = new XMLHttpRequest();
    }
}

function addSelect(sid,elementID) {
    //不用var声明变量，并将其最先执行，该变量就具有了全局性
    oElement = document.getElementById(elementID);
    sArea=document.getElementById("college");
    initSelect(oElement);
    initSelect(sArea);
    
    if(elementID=="city"){
        sArea.options[0].innerHTML="***如果您是在校高校师生,请选择所在高校***";
    }
    
    if(sid==""){
        oElement.options[0].innerHTML="请选择城市";
    }else{
        
        createXMLHttpRequest();
		var url
		if(elementID=="city"){
			url="select.asp?action=getcity&sid=" + sid;
			}
		if(elementID=="college"){
			url="select.asp?action=getcollege&sid=" + sid +"&province=" + document.getIlementById("province").value;
			}
        //var url = "select.asp?sid=" + sid;
        /*当准备状态改变时，需要为readyState属性指定事件处理函数，该处理函数有两种传递参数的方法：
        xmlhttp.onreadystatechange= function(){HandleStateChange(param1,param2...)}; 或者  
        xmlhttp.onreadystatechange=new Function("HandleStateChange(param1,param2...)"); 
        */
        xmlHttp.onreadystatechange = function(){onStateChange(oElement,sArea)};
        xmlHttp.open("GET", url, true);
        xmlHttp.send(null);
    }
}
    
function onStateChange(oElement) {
    if(xmlHttp.readyState == 4) {
        if(xmlHttp.status == 200) {
            showSelect(xmlHttp.responseXML);
        }
    }
}

function showSelect(xmlData) {
    if(!xmlData.documentElement.hasChildNodes()){
        oElement.options[0].innerHTML="暂无数据";
        sArea.options[0].innerHTML="暂无数据";
    }
    var names = xmlData.getElementsByTagName("Name");
    var ids = xmlData.getElementsByTagName("ID");
    for(var i = 0; i < names.length; i++) {
        var op=new Option(names[i].firstChild.nodeValue);  
        //为列表/菜单添加选项时，object.options.add方法比object.appendChild方法更适用。   
        oElement.options.add(op);
	    op.value=ids[i].firstChild.nodeValue;
    }
}

function initSelect(oElement) {
    while(oElement.options.length > 0) {
        oElement.remove(oElement.options.length-1);
    }
    var op=new Option("数据加载中...");        
    oElement.options.add(op);
    op.value="";
}
