// JavaScript Document




/****************************************************
	普通过程函数
****************************************************/





/****************************************************
创建友情链接对象		Youqinglianjie

	将生成的友情链接信息插入到该标签对象中；
	将要调用的select（数组）；
	XML文件源（当调用的不是在同一域，XML文件源将无效）；
	ID（CLASS）样式；
	扩展对象
****************************************************/


function Youqinglianjie (biaoqian, select_zu, XML, yangshi, kuozhan) {
	
	this.BQ		= document.getElementById(biaoqian);
	this.SELECT	= select_zu;
	this.XML	= XML;
	this.YS		= yangshi;
	this.KZ		= kuozhan;
	this.XMLDOC	= null;
		
	try {
		this.XMLDOC = new XmlDoc().du(xml);
	} catch (e) {		
	}
	
	this.huoqu_select = [];													//可用于查看数据库中select组
	
	{
		if (!select_zu.length) {
			alert("对不起，select组为空，系统无法继续执行!");
			return;
		}
		
		if (this.XMLDOC) {
			this.shuchu_XML();												//采用XML数据源的方式输出友情链接select组
		} else {
			this.shuchu_JS();												//采用XML数据源的方式输出友情链接select组
		}
	}
}


Youqinglianjie.prototype.shuchu_XML  = function () {
	
	var shuchu;
	
	try {
		var select = this.XMLDOC.getElementsByTagName("select");
		var select_mingcheng = new Array();
		
		for (var i = 0, j = select.length; i < j; i++) {									//将XML文件中所有select放入一个数组
			select_mingcheng.push(select[i].getElementsByTagName("mingcheng")[0].text);
		}
		
		this.huoqu_select = select_mingcheng;
		
		shuchu = '<ul id="' + this.YS + '" class="' + this.YS + '">';						//定义输出HTML信息的变量
		for (var i = 0, j = this.SELECT.length; i < j; i++){
			var bianhao;
			for (var k = 0, l = select_mingcheng.length; k < l; k++) {						//循环提取当前将要输出的select
				if (select_mingcheng[k] == this.SELECT[i]) {
					bianhao = k;
					break;
				}
			}
			
			if (bianhao != undefined) {
				var _option = select[bianhao].getElementsByTagName("option");
				
				shuchu += '<li><select id="youqing_"' + i + '">';
				for (var k = 0, l = _option.length; k < l; k++) {
					shuchu += '<option value="' + _option[k].getElementsByTagName("value")[0].text + '">'
							+ 		_option[k].getElementsByTagName("innerHTML")[0].text
							+ '</option>';
				}
				
				try {
					for (var k = 0, l = this.KZ[i].innerHTML.length; k < l; k++) {
						shuchu += '<option value="' + this.KZ[i].value[k] + '">' + this.KZ[i].innerHTML[k] + '</option>';
					}
				} catch (e) {
				}
				
				shuchu += "</select></li>";
			}
		}
		shuchu += "</ul>";
		
		try {
			this.BQ.innerHTML = shuchu;
		} catch (ee) {
			//throw ee;
		}
		
		//回收
		shuchu = null;
		
		var _select = document.getElementById(this.YS).getElementsByTagName("select");			//设置各select控件的事件
		for (var i = 0, j = _select.length; i < j; i++) {
			fun_select_shijian(_select[i]);
		}
	} catch (e) {
		//throw e;
	}
};


Youqinglianjie.prototype.shuchu_JS = function () {
	
	var shuchu;
	
	try {
		this.huoqu_select = Youqinglianjie_JS.mincheng;
		
		shuchu = '<ul id="' + this.YS + '" class="' + this.YS + '">';				//定义输出HTML信息的变量
		for (var i = 0, j = this.SELECT.length; i < j; i++){
			var bianhao;
			for (var k = 0, l = Youqinglianjie_JS.mingcheng.length; k < l; k++) {			//循环提取当前将要输出的select
				if (Youqinglianjie_JS.mingcheng[k] == this.SELECT[i]) {
					bianhao = k;
					break;
				}
			}
			
			if (bianhao != undefined) {
				shuchu += '<li><select id="youqing_"' + i + '">';
				for (var k = 0, l = Youqinglianjie_JS.kongjian[bianhao].innerHTML.length; k < l; k++) {
					shuchu += '<option value="' + Youqinglianjie_JS.kongjian[bianhao].value[k] + '">'
							+ 		Youqinglianjie_JS.kongjian[bianhao].innerHTML[k]
							+ '</option>';
				}
				
				try {
					for (var k = 0, l = this.KZ[i].innerHTML.length; k < l; k++) {
						shuchu += '<option value="' + this.KZ[i].value[k] + '">' + this.KZ[i].innerHTML[k] + '</option>';
					}
				} catch (e) {
				}
				
				shuchu += "</select></li>";
			}
		}
		shuchu += "</ul>";
		
		try {
			this.BQ.innerHTML = shuchu;
		} catch (ee) {
			//throw ee;
		}
		
		//回收
		shuchu = null;
		
		var _select = document.getElementById(this.YS).getElementsByTagName("select");			//设置各select控件的事件
		for (var i = 0, j = _select.length; i < j; i++) {
			fun_select_shijian(_select[i]);
		}
	} catch (e) {
		//throw e;
	}
};


Youqinglianjie.prototype.shuju_XML_zhi_JS = function () {
	
	var _select = this.XMLDOC.getElementsByTagName("select");
	for (var i = 0, j = _select.length; i < j; i++) {
		var _mingcheng = _select[i].getElementsByTagName("mingcheng")[0].text;
		document.write(_mingcheng + ", ");
	}
	
	document.write("<br /><br />");
	
	for (var i = 0, j = _select.length; i < j; i++) {
		var _option = _select[i].getElementsByTagName("option");
		for (var k = 0, l = _option.length; k < l; k++) {
			var _innerHTML = _option[k].getElementsByTagName("innerHTML")[0].text;
			document.write("\"" + _innerHTML + "\", ");
		}
		
		document.write("<br /><br />");
		
		for (var k = 0, l = _option.length; k < l; k++) {
			var _value = _option[k].getElementsByTagName("value")[0].text;
			document.write("\"" + _value + "\", ");
		}
		
		document.write("<br /><br />");
	}
};


function fun_select_shijian(duixiang) {
	
	duixiang.onchange = function () {
		if (this.value) {
			window.open(this.value);
			this.options[0].selected = true;
		}
	}
}

















/****************************************************
	Ajax及xmlHttpRequest类
****************************************************/

function XmlDoc () {
	this.XMLDOC = this.chuangjian();
}


XmlDoc.prototype.du = function (dizhi) {
	this.XMLDOC.async = false;
	this.XMLDOC.load(dizhi);
	
	return this.XMLDOC.documentElement;
};


XmlDoc.prototype.chuangjian = function () {

	var xmlDoc = null;

	try {
		xmlDoc = new ActiveXObject("MSXML2.DOMDocument");
	} catch (e) {
		try {
			xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
		} catch (ee) {
			try {
				xmlDoc = document.implementation.createDocument("", "", null);
			} catch (eee) {
				alert("对不起，创建XMLDOM文件失败!");
			}
		}
	}
	
	return xmlDoc;
}