﻿function createXMLHttpRequest() {
	var xmlhttp_request = false;
	try {
		if (window.ActiveXObject) {
			for (var i = 5; i; i--) {
				try{
					if (i == 2) {
						xmlhttp_request = new ActiveXObject("Microsoft.XMLHTTP");
					} else {
						xmlhttp_request = new ActiveXObject("Msxml2.XMLHTTP." + i + ".0");
						xmlhttp_request.setRequestHeader("Content-Type", "text/xml");
						xmlhttp_request.setRequestHeader("Charset", "utf-8");//xmlhttp_request.setRequestHeader("Charset", "gb2312");
					}
					break;
				}catch(e) {
					xmlhttp_request = false;
				}
			}
		} else if (window.XMLHttpRequest) {
			xmlhttp_request = new XMLHttpRequest();
			if (xmlhttp_request.overrideMimeType) {
				xmlhttp_request.overrideMimeType('text/xml');
			} 
		}
	}catch(e) {
		xmlhttp_request = false;
	}
	if (!xmlhttp_request) {
		window.alert("创建XMLHttpRequest实例失败");
	}
	return xmlhttp_request;
}
function SendRequest(url, observer, loadingHTML) { //默认回调函数
	var ajaxRequest = createXMLHttpRequest();
	ajaxRequest.open("GET", url);
	ajaxRequest.onreadystatechange = function() {
		if (ajaxRequest.readyState == 1) {
			$(observer).innerHTML = loadingHTML;
		} else if (ajaxRequest.readyState == 4 && ajaxRequest.status == 200) {
			$(observer).innerHTML = ajaxRequest.responseText;
		}
	}
	ajaxRequest.send(null);
}
function SendNewRequest(url, observer, loadingHTML) { //默认回调函数
	var ajaxRequest = createXMLHttpRequest();
	ajaxRequest.open("GET", url);
	ajaxRequest.onreadystatechange = function() {
		if (ajaxRequest.readyState == 1 && $(observer).innerHTML.length == 0) {
			$(observer).innerHTML = loadingHTML;
		} else if (ajaxRequest.readyState == 4 && ajaxRequest.status == 200) {
			$(observer).innerHTML = ajaxRequest.responseText;
		}
	}
	ajaxRequest.setRequestHeader("If-Modified-Since", "0");
	ajaxRequest.send(null);
}
function _SendNewRequest(url, observer, loadingHTML, callbackFunc) { //自定义回调函数
	var ajaxRequest = createXMLHttpRequest();
	ajaxRequest.open("GET", url);
	ajaxRequest.onreadystatechange = function() {
		callbackFunc(ajaxRequest, observer, loadingHTML);
	}
	ajaxRequest.setRequestHeader("If-Modified-Since", "0");
	ajaxRequest.send(null);
}
function SendPostRequest(url, data, observer, loadingHTML) { //默认回调函数
	var ajaxRequest = createXMLHttpRequest();
	ajaxRequest.open("POST", url);
	ajaxRequest.onreadystatechange = function() {
		if (ajaxRequest.readyState == 1) {
			$(observer).innerHTML = loadingHTML;
		} else if (ajaxRequest.readyState == 4 && ajaxRequest.status == 200) {
			$(observer).innerHTML = ajaxRequest.responseText;
		}
	}
	ajaxRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	ajaxRequest.send(data);
}
function _SendPostRequest(url, data, observer, loadingHTML, callbackFunc) { //自定义回调函数
	var ajaxRequest = createXMLHttpRequest();
	ajaxRequest.open("POST", url);
	ajaxRequest.onreadystatechange = function() {
		callbackFunc(ajaxRequest, observer, loadingHTML);
	}
	ajaxRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	ajaxRequest.send(data);
}

/* Message(Guestbook,Feedback) */
function ViewMessage(page) {
	/*if ($("messagelist").innerHTML.length == 0) {
		$("messagelist").innerHTML = "<div class='sysinfo'><img src='/img/loading.gif' /><br />正在读取留言,请稍候...</div>";
	}*/
	SendNewRequest("ViewMessage.asp?page=" + page, "messagelist", "<div class='sysinfo'><img src='/img/loading.gif' /><br />正在读取留言,请稍候...</div>");
}
function PostMessage() {
	var usernameElement = $('txtUsername');
	var contentElement = $('txtContent');
	var username,content;
	username = usernameElement.value.replace(/^\s*|\s*$/,'');
	content = contentElement.value.replace(/^\s*|\s*$/,'').replace(/\r\n/ig,"<br />");
	if(ValidateMessageLeaverElement(usernameElement)&&ValidateMessageElement(contentElement)){
		var callback = function(ajaxRequest, observer, loadingHTML) {
			if (ajaxRequest.readyState == 1) {
				$(observer).innerHTML = loadingHTML;
			} else if (ajaxRequest.readyState == 4 && ajaxRequest.status == 200) {
				if (($(observer).innerHTML = ajaxRequest.responseText).length == 0) {
					RefreshMessage();
				}
			}
		}
		_SendPostRequest("PostMessage.asp", "txtusername=" + username + "&txtcontent=" + content, "state", "正在发表留言,请稍候...", callback);
	}
}
function RefreshMessage() {
	$("txtContent").value = "";
	ViewMessage(1);
	window.scrollTo(0, 230);
}

/* Comment */
function ViewComment(articleId, mode) {
	SendNewRequest("ViewComment.asp?ArticleID=" + articleId + "&mode=" + mode, "messagelist", "<div class='sysinfo'>正在读取评论,请稍候...</div>");
}
function PostComment(articleId) {
	var commentElement = $('txtContent');
	commentElement.value = commentElement.value.replace(/^\s*|\s*$/, '').replace(/\r\n/ig, "<br />");
	if (ValidateCommentElement(commentElement)) {
		var callback = function(ajaxRequest, observer, loadingHTML) {
			if (ajaxRequest.readyState == 1) {
				$("btnPost").disabled = "disabled";
				$(observer).innerHTML = loadingHTML;
			} else if (ajaxRequest.readyState == 4) {
				$("btnPost").disabled = "";
				if (ajaxRequest.status == 200 && ($(observer).innerHTML = ajaxRequest.responseText) == "评论发表成功") {
					RefreshComment(articleId);
				}
			}
		}
		_SendPostRequest("PostComment.asp?ArticleID=" + articleId, "txtContent=" + commentElement.value, "state", "正在发表评论,请稍候...", callback);
	}
}
function RefreshComment(articleId) {
	$("txtContent").value = "";
	ViewComment(articleId, "showrecent");
}

