// Javascript Document

document.write('<script type="text/javascript" src="http://javascript.kaye.cn/keysFilter/Main2.js"></script>');

// 问答类 - kaye.cn；
// 构造时须提供 url：接口地址、cityid：所在城市编号；显示时须提供 element：接口与本地连接的Dom对象 和 其他须设置的属性；
// 其他参数系统提供默认值；

// 构造
function WenDa(url, cityid) {
	///	<summary>
	///	构造函数，实例化一个WenDa对象
	///	</summary>
	///	<param name="url" type="String">内容 - 接口文件：WenDaAPI.asp的相对或绝对路径。</param>
	///	<param name="cityid" type="Int">内容 - 系统所在的城市编号。</param>
	///	<returns type="WenDa" />
	if (url != null) { this.url = url; }
	if (cityid != null) { this.cityID = cityid; this.url += '?cityid=' + cityid; }
}

// 创建原型
WenDa.prototype = {

	// 接口地址 默认路径为同一目录内
	url: 'WenDaAPI.asp',

	// 城市ID 默认为漯河
	cityID: 4,

	// 接口与本地连接的Dom对象
	element: null,

	// 创建 XMLHttpRequest 对象
	createXMLHttpRequest: function () {
		///	<summary>
		///	创建 XMLHttpRequest 对象
		///	</summary>
		///	<returns type="XMLHttpRequest" />
		var xmlHttp = null;
		if (window.XMLHttpRequest) {
			xmlHttp = new XMLHttpRequest(); // 尝试建立 XMLHttpRequest 对象，除 IE 外的浏览器都支持这个对象 。
		} else if (window.ActiveXObject) {
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); // 建立 IE 兼容的对象（Microsoft.XMLHTTP）
		}
		return xmlHttp;
	},

	// 加载并输出列表
	showList: function (element, classid, listsize, itemlength, displaydate, listtype) {
		///	<summary>
		///	异步方式在指定的 Element 对象内追加问答列表
		///	</summary>
		///	<param name="element" type="Dom">
		///	1：内容 - Dom对象：指定的 documentElement 对象。
		///	2：内容 - String：指定的 documentElement 对象的 ID 属性值。
		///	</param>
		///	<param name="classid" type="Int">内容 - 问答所在分类：如果 classid 为空则输出所有分类内的问答数据。</param>
		///	<param name="listsize" type="Int">内容 - 列表长度：要输出的列表的数目，默认为 10。</param>
		///	<param name="itemlength" type="Int">内容 - 项的长度：没个列表项的字符串的长度，默认为 18。</param>
		///	<param name="displaydate" type="Number">内容 - 是否显示发布日期，默认为 false。</param>
		///	<param name="listtype" type="String">
		///	内容 - 列表类型
		///	1：default - 默认的列表类型：按发布日期倒序排列；
		///	2：hit - 热点：按点击倒序排列；
		///	3：vip - 精品：按点击倒序排列；
		///	</param>
		///	<returns type="null" />
		var element = $(element);
		this.element = element;
		if (!this.element) { document.write('本地的Dom对象不存在！'); return; }
		this.initListStyle();
		this.element.appendChild(document.createTextNode('正在加载数据...'));

		var url = this.url;
		url += '&AC=List';
		url += (classid == null) ? '' : '&classid=' + classid;
		url += (listsize == null) ? '&listsize=10' : '&listsize=' + listsize;
		url += (itemlength == null) ? '&itemlength=18' : '&itemlength=' + itemlength;
		url += (displaydate == null) ? '&displaydate=false' : '&displaydate=' + displaydate;
		url += (listtype == null) ? '&listtype=default' : '&listtype=' + listtype;
		url += '&rad=' + Math.random();

		// 实例化 XMLHttpRequest 对象
		var xmlHttp = this.createXMLHttpRequest();
		if (xmlHttp == null) { document.write('你的浏览器不支持异步数据传输！'); return; }

		xmlHttp.onreadystatechange = function () {
			if (xmlHttp.readyState == 4) {
				if (xmlHttp.status == 200) {
					var responseXML = xmlHttp.responseXML;
					var items = responseXML.getElementsByTagName("item");
					// ul
					var ul = document.createElement('ul');
					ul.style.padding = '0px';
					ul.style.margin = '0px';
					for (var i = 0; i < items.length; i++) {

						// 从XML中获取其子分类的各自段值
						var Item = items[i];
						var wd_id = Item.getElementsByTagName("id")[0].firstChild.nodeValue;
						var wd_city = Item.getElementsByTagName("city")[0].firstChild.nodeValue;
						var wd_userid = Item.getElementsByTagName("userid")[0].firstChild.nodeValue;
						var wd_username = Item.getElementsByTagName("username")[0].firstChild.nodeValue;
						var wd_title = Item.getElementsByTagName("title")[0].firstChild.nodeValue;
						var wd_content = Item.getElementsByTagName("content")[0].firstChild.nodeValue;
						var wd_publicdate = Item.getElementsByTagName("publicdate")[0].firstChild.nodeValue;

						// 格式：<li>[<span class="City">漯河</span>] <a href="/WenDa/Show.asp?ID=5" target="_blank">二手房过户手续怎么办理？</a><span>2010-05-01</span></li>

						// li
						var li = document.createElement('li');
						// 城市
						var city = document.createElement('span');
						city.setAttribute('class', 'City');
						city.appendChild(document.createTextNode(wd_city));
						li.appendChild(document.createTextNode('['));
						li.appendChild(city);
						li.appendChild(document.createTextNode('] '));
						// 连接
						var a = document.createElement('a');
						a.setAttribute('href', '/WenDa/Show.asp?ID=' + wd_id);
						a.setAttribute('target', '_blank');
						a.appendChild(document.createTextNode(wd_title));
						li.appendChild(a);

						if (displaydate == 'true') {
							var date = document.createElement('span');
							date.appendChild(document.createTextNode(wd_publicdate));
							li.appendChild(date);
						}

						ul.appendChild(li);
					}
					element.removeChild(element.childNodes.item(0));
					element.innerHTML = '';
					element.appendChild(ul);
				}
			}
		}

		xmlHttp.open("GET", url, true);
		xmlHttp.send(null);

	},

	getReplyCount: function (element, ID) {
		if (ID == null || ID == '') return;
		var url = this.url;
		url += '&AC=GetReplyNum';
		url += '&ID=' + ID;
		url += '&rad=' + Math.random();

		var xmlHttp = this.createXMLHttpRequest();
		if (xmlHttp == null) { alert('你的浏览器不支持异步数据传输！'); return; }
		var element = $(element);
		xmlHttp.onreadystatechange = function () {
			if (xmlHttp.readyState == 4) {
				if (xmlHttp.status == 200) { element.innerHTML = xmlHttp.responseText; }
			}
		}
		xmlHttp.open("GET", url, true);
		xmlHttp.send(null);
	},

	getDingCount: function (element, ID) {
		if (ID == null || ID == '') return;
		var url = this.url;
		url += '&AC=GetDingNum';
		url += '&ID=' + ID;
		url += '&rad=' + Math.random();

		var xmlHttp = this.createXMLHttpRequest();
		if (xmlHttp == null) { alert('你的浏览器不支持异步数据传输！'); return; }
		var element = $(element);
		xmlHttp.onreadystatechange = function () {
			if (xmlHttp.readyState == 4) {
				if (xmlHttp.status == 200) { element.innerHTML = xmlHttp.responseText; }
			}
		}
		xmlHttp.open("GET", url, true);
		xmlHttp.send(null);
	},

	getCaiCount: function (element, ID) {
		if (ID == null || ID == '') return;
		var url = this.url;
		url += '&AC=GetCaiNum';
		url += '&ID=' + ID;
		url += '&rad=' + Math.random();

		var xmlHttp = this.createXMLHttpRequest();
		if (xmlHttp == null) { alert('你的浏览器不支持异步数据传输！'); return; }
		var element = $(element);
		xmlHttp.onreadystatechange = function () {
			if (xmlHttp.readyState == 4) {
				if (xmlHttp.status == 200) { element.innerHTML = xmlHttp.responseText; }
			}
		}
		xmlHttp.open("GET", url, true);
		xmlHttp.send(null);
	},

	setDC: function (element, ID, DC_type) {
		if (ID == null) return;
		var url = this.url;
		url += '&AC=SetDC';
		url += '&ID=' + ID;
		url += '&T=' + DC_type;
		url += '&rad=' + Math.random();

		var xmlHttp = this.createXMLHttpRequest();
		if (xmlHttp == null || ID == '') { alert('你的浏览器不支持异步数据传输！'); return; }
		var element = $(element);
		xmlHttp.onreadystatechange = function () {
			if (xmlHttp.readyState == 4) {
				if (xmlHttp.status == 200) {
					var Result = xmlHttp.responseText.split('|||');
					alert(Result[1]);
					try {
						element.innerHTML = parseInt(element.innerHTML) + parseInt(Result[0]);
					} catch (e) {
						alert(e.message);
					}
				}
			}
		}
		xmlHttp.open("GET", url, true);
		xmlHttp.send(null);
	},

	setJieDa: function (element, ID) {
		if (ID == null || ID == '') return;
		var element = $(element);
		var infoBox = element.parentNode.parentNode.parentNode.parentNode.parentNode;
		var value = element.getAttribute('value');
		var url = this.url;
		url += '&AC=SetJieDa';
		url += '&ID=' + ID;
		url += '&V=' + value;
		url += '&rad=' + Math.random();

		var xmlHttp = this.createXMLHttpRequest();
		if (xmlHttp == null) { alert('你的浏览器不支持异步数据传输！'); return; }
		xmlHttp.onreadystatechange = function () {
			if (xmlHttp.readyState == 4) {
				if (xmlHttp.status == 200) {
					var Result = xmlHttp.responseText.split('||');
					element.setAttribute('value', Result[0])
					element.innerHTML =  Result[1];
					infoBox.setAttribute('id', value);
				}
			}
		}
		xmlHttp.open("GET", url, true);
		xmlHttp.send(null);
	},



	// 生成验证码
	writeSafeCode: function (self, obj) {

		var mySelf = $(self);
		if (mySelf.getAttribute('show') != null) return;

		var element = $(obj); element.innerHTML = '';

		function getImgSrc() {
			return '../Function/SafeCode/Code.asp' + '?rad=' + Math.random();
		};

		// 生成验证码图像
		var img = document.createElement('img');
		img.setAttribute('src', getImgSrc());
		img.setAttribute('width', 59);
		img.setAttribute('height', 20);
		img.setAttribute('border', '0');
		img.setAttribute('align', 'middle');
		img.setAttribute('title', '请在验证码文本框内输入此代码，如果看不清楚请点击更换验证码。');
		img.style.margin = '0px 6px';

		// 生成更换验证码连接
		var a = document.createElement('a');
		a.setAttribute('href', 'javascript:void(\'看不清,换一个图片\');');
		a.onclick = function () {
			try {
				img.src = getImgSrc();
				mySelf.value = '';
				mySelf.focus();
			} catch (e) {
				img.setAttribute('src', getImgSrc());
			}
		}
		a.appendChild(document.createTextNode('[看不清,换一个图片]'));

		element.appendChild(img);
		element.appendChild(a);

		var SubmitCheck = document.createElement('input');
		SubmitCheck.setAttribute('type', 'hidden');
		SubmitCheck.setAttribute('name', 'SubmitCheck');
		SubmitCheck.setAttribute('value', 'PASS');
		SubmitCheck.type = 'hidden';
		mySelf.form.appendChild(SubmitCheck);
		mySelf.form.setAttribute('action', this.url);

		mySelf.setAttribute('show', 'YES');

	},

	// 表单验证
	checkPublic: function (form) {
		// 过滤字符串中的HTML代码
		function FilterHTML(data) {
			return data.replace(/<[^>]+>/gi, '');
		};
		try {
			if (form.Title.value == '') { alert('标题不能为空！'); form.Title.focus(); return false; }
			if (!keysFilter(form.Title.value, '请注意，你输入的标题中含有非法字符！')) return false;
			if (window.CKEDITOR) {
				var oEditor = CKEDITOR.instances.Content;
				if (FilterHTML(oEditor.getData()) == '') { alert('正文编辑器内容不能为空！'); return false; }
			} else {
				if (form.Content.value == '') { alert('正文内容不能为空！'); return false; }
			}
			if (!keysFilter(form.Content.value, '请注意，你输入的内容中含有非法字符！')) return false;
			if (form.UserName.value == '') { alert('用户名不能为空！'); form.UserName.focus(); return false; }
			if (form.SafeCode.value == '') { alert('验证码不能为空！'); form.SafeCode.focus(); return false; }
		} catch (e) {
			alert('内容不完整！');
			return false;
		}
	},

	// 初始化列表样式
	initListStyle: function () {
		var styleString = '';
		styleString += '<style type="text/css">';
		styleString += '#' + this.element.getAttribute('id') + ' ul { padding:0px; margin:0px; list-style-type:none; }';
		styleString += '</style>';
		document.write(styleString);
	}

};

// 选择器
function $(id, tag) {
	///<summary>标签选择器</summary>
	///<param name="id" type="String">
	///1、对象的ID属性值。
	///2、Element 对象。
	///</param>
	///<param name="tag" type="String">内容：子节点的标签名称，此时以数组形式返回该对象内所有符合要求的 Element 对象。</param>
	///<returns type="Element" />
	var re = (id && typeof (id) != 'string') ? id : document.getElementById(id);
	if (arguments.length == 1) { return re; } else { return (!tag) ? re : re.getElementsByTagName(tag); }
}