﻿//全局变量
xmlhttp = null;

//浏览器判断
var browser_type;
if (window.ActiveXObject) {
	var browser_type = 1;
}
else {
	var browser_type = 2;
}

//去除字符串的左右空格，语法:字符串.trim()
String.prototype.trim = function(){
return this.replace(/(^\s*)|(\s*$)/g, "");
}

//设置cookie
function set_cookie(cookie_name, cookie_value){
	var expdate = new Date();
	var expiredays = 1000;
	expdate.setTime(expdate.getTime() + (expiredays*24*60*60*1000));


	//encodeURIComponent()
	var cookie_name_value = cookie_name + "=" + encodeURIComponent(cookie_value) + ";expires=" + expdate.toGMTString();
	document.cookie = cookie_name_value;
}

//获取cookie
function get_cookie(cookie_name){
	var sRE = "(?:; )?" + cookie_name + "=([^;]*);?";
	var oRE = new RegExp(sRE);
	
	//alert(oRE.test(document.cookie));
	if (oRE.test(document.cookie)) {
		//alert (decodeURIComponent(RegExp["$1"]));
		return decodeURIComponent(RegExp["$1"]);
	} else {
		return "";
	}
}

//设置cookies
function set_cookies(){
	set_cookie("shiyanfeng_txt_author", get_input("txt_author"));
	set_cookie("shiyanfeng_txt_email", get_input("txt_email"));
	set_cookie("shiyanfeng_txt_blog", get_input("txt_blog"));
}

//显示cookies
function get_cookies(){	
	set_input("txt_author", get_cookie("shiyanfeng_txt_author"));
	set_input("txt_email", get_cookie("shiyanfeng_txt_email"));
	set_input("txt_blog", get_cookie("shiyanfeng_txt_blog"));
}

//获取元素
function get_element_by_id(ElementName){	
	var element_by_id = document.getElementById(ElementName);
	return element_by_id;
}

//隐藏元素
function hide_element_by_id(ElementName){
	if(get_element_by_id(ElementName)){
		get_element_by_id(ElementName).style.display = 'none';
	}
}

//显示元素
function show_element_by_id(ElementName){
	if(get_element_by_id(ElementName)){
		get_element_by_id(ElementName).style.display = 'block';
	}
}

//获取元素内容，此函数需要使用browser_type公共变量，不能放到其他js文件中
function get_div(div_name, inner_type){
	var div_value;
	switch(inner_type){
		case 1:
			switch(browser_type){
				case 1:div_value = document.getElementById(div_name).innerText;break;
				case 2:div_value = document.getElementById(div_name).textContent;break;
			}
			break;
		case 2:div_value = document.getElementById(div_name).innerHTML;break;
	}
	return div_value;
}

//设置元素内容，此函数需要使用browser_type公共变量，不能放到其他js文件中
function set_div(div_name, div_value, inner_type){
	switch(inner_type){
		case 1:
			switch(browser_type){
				case 1:document.getElementById(div_name).innerText = div_value;break;
				case 2:document.getElementById(div_name).textContent = div_value;break;
			}
			break;
		case 2:document.getElementById(div_name).innerHTML = div_value;break;
	}
}

//获取input值
function get_input(ElementName){
	var input_value = document.getElementById(ElementName).value;
	return input_value;
}

//设置input值
function set_input(element_name, element_value){
	document.getElementById(element_name).value = element_value;
}

//显示正在保存提示
function display_tips_saving(ttype){
	var div_tips = document.createElement("div");
	div_tips.innerHTML = "正在保存您的评论……";
	div_tips.setAttribute("id", "div_message_tips");
	div_tips.setAttribute("class", "message_tips");
	
	switch(ttype){
		case 1:
//			var div_message = get_element_by_id("div_comment_send_form");
//			var div_tips_parent = div_message.parentNode;
//			var div_tips_next = div_message;
//			div_tips_parent.insertBefore(div_tips, div_tips_next);

			var div_message = get_element_by_id("div_tips_save_next");
			var div_tips_parent = div_message.parentNode;
			var div_tips_next = div_message;
			div_tips_parent.insertBefore(div_tips, div_tips_next);
			break;
		case 2:
			var div_message = get_element_by_id("div_message");
			var div_tips_parent = div_message.parentNode;
			var div_tips_next = div_message;
			div_tips_parent.insertBefore(div_tips, div_tips_next);
			break;
	}
}

//显示保存成功提示
function display_tips_saved(ttype){
	set_div("div_message_tips", "保存成功！", 1);
	setTimeout("remove_tips()", 5000);
}

//删除保存保存成功提示
function remove_tips(){
	var div_message = document.getElementById("div_tips_save_next");
	var div_message_tips = document.getElementById("div_message_tips");

	div_message.parentNode.removeChild(div_message_tips);
}

//显示Trackblog正在发送提示
function display_trackblog_tips_saving(URLListOrder){
	var div_tips = document.createElement("span");	
	div_tips.innerHTML = "Trackblog正在发送……";
	
	var div_trackblog_tips = "div_trackblog_tips_" + URLListOrder;
	div_tips.setAttribute("id", div_trackblog_tips);
	div_tips.setAttribute("class", "trackblog_tips");
	
	var div_trackblog_URLList = "div_trackblog_URLList_" + URLListOrder;
	div_trackblog_URLList = get_element_by_id(div_trackblog_URLList);
	
	div_trackblog_URLList.appendChild(div_tips);
}

//显示Trackblog发送成功提示
function display_trackblog_tips_saved(URLListOrder){
	var div_trackblog_tips = "div_trackblog_tips_" + URLListOrder;
	div_trackblog_tips = get_element_by_id(div_trackblog_tips);
	div_trackblog_tips.childNodes[0].nodeValue = "Trackblog发送成功！";
	setTimeout("remove_trackblog_tips("+URLListOrder+")", 5000);
}

//删除Trackblog发送成功提示
function remove_trackblog_tips(URLListOrder){
	var div_trackblog_tips = "div_trackblog_tips_" + URLListOrder;
	div_trackblog_tips = get_element_by_id(div_trackblog_tips);
	div_trackblog_tips.parentNode.removeChild(div_trackblog_tips);
}


//创建xmlhttp对象
function createXMLHTTP() {
	if(window.ActiveXObject) {
		try {
			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e){
			try{
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			}
				catch(e){
					alert("Create XMLHttpRequest object false!");
					return false;
				}
		}
	}
	else if(window.XMLHttpRequest) {
		xmlhttp = new XMLHttpRequest();
		if(xmlhttp.overrideMimeType) {
			xmlhttp.overrideMimeType('text/xml');
		}
	}
	else {
		alert("Create XMLHttpRequest object false!");
		return false;
	} 
	return xmlhttp;
}

//异步读取回调函数
function stateChanged(div_type){ 
	if(xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){
		switch(div_type){
			case 1:set_div("div_question", xmlHttp.responseText, 1);break;
			case 2:set_div("div_result", xmlHttp.responseText, 1);break;
			case 3:set_div("layout_main", xmlHttp.responseText, 2);break;
			//case 4:break;
			//case 5:break;
			case 6:
				display_tips_saved(2);
				set_div("div_message", xmlHttp.responseText + get_div("div_message", 2), 2);
				gen_question(2);
				break;
			case 7:set_div("div_friend_say_reply", xmlHttp.responseText + get_div("div_friend_say_reply", 2), 2);break;
			//case 8:break;
			case 9:
				var sRE = /CheckURL\|(\d)/;
				var arr = sRE.exec(xmlHttp.responseText);
				//alert(xmlHttp.responseText);
				//alert(arr.index);
				//alert(arr.lastIndex);
				//alert(arr[0]);
				//alert(RegExp["$1"]);
				global_check_trackblog_url = RegExp["$1"];
				break;
			case 10:
				//
				break;
			case 11:
				var sRE = /TrackblogURLList\|(.*)\|TrackblogURLList/;
				var arr = sRE.exec(xmlHttp.responseText);
				//alert(xmlHttp.responseText);
				//alert(RegExp["$1"]);
				
				TBP_url_list = RegExp["$1"].split("|");
				TBP_url_list_length = TBP_url_list.length;
				//alert(TBP_url_list=="");
				//alert(TBP_url_list_length);
				break;
			case 12:				
				break;

		}
	}
}

//异步读取回调函数2
function stateChanged_2(div_type, div_special_value){ 
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){
		switch(div_type){
			case 1:
				var div_friend_message_reply_form = "div_friend_message_reply_form_" + div_special_value;
				var txt_reply = "txt_reply_" + div_special_value;
				
				set_div(div_friend_message_reply_form, xmlHttp.responseText, 2);
				get_element_by_id(txt_reply).focus();
				break;
			case 2:
				var div_friend_say_reply = "div_friend_say_reply_" + div_special_value;
				var div_friend_message_reply_form = "div_friend_message_reply_form_" + div_special_value;
				set_div(div_friend_say_reply, get_div(div_friend_say_reply, 2) + xmlHttp.responseText, 2);
				set_div(div_friend_message_reply_form, "", 2);
				break;
			case 3:
				var div_message_reply_form = "div_message_reply_form_" + div_special_value;
				var txt_reply = "txt_reply_" + div_special_value;
				
				set_div(div_message_reply_form, xmlHttp.responseText, 2);
				get_element_by_id(txt_reply).focus();
				break;
			case 4:
				var div_comment_reply = "div_comment_reply_" + div_special_value;
				var div_message_reply_form = "div_message_reply_form_" + div_special_value;
				set_div(div_comment_reply, get_div(div_comment_reply, 2) + xmlHttp.responseText, 2);
				set_div(div_message_reply_form, "", 2);
				break;
			case 5:
				display_tips_saved(1);
				set_div("div_message", get_div("div_message", 2) + xmlHttp.responseText, 2);
				gen_Q_html(1, div_special_value);
				break;
			case 6:
				set_div("div_question", xmlHttp.responseText, 1);
				//不需要处理xmlHttp.responseText
				g_html(div_special_value);
				
				//在这里发送Trackblog，要避免在complete前调用新的异步进程。
				send_trackblog_list(div_special_value);
				break;
			case 7:
				set_div("div_tips", "发送回复成功！", 1);
				g_html(div_special_value);
				setTimeout("document.getElementById('div_tips').innerHTML = ''", 5000);
				break;
			case 8:
				display_trackblog_tips_saved(div_special_value);
				URLListOrder = div_special_value + 1;
				if(URLListOrder < TBP_url_list_length){
					send_trackblog(URLListOrder);
				}
				break;
			case 9:
				display_trackblog_list_ajax(div_special_value);
				break;
			case 10:
				set_div("div_trackblog_URLList", xmlHttp.responseText, 2);
				g_html(div_special_value);
				break;
			//manager_friend_say
			case 11:
				var td_friend_say = "td_friend_say_" + div_special_value;
				set_div(td_friend_say, xmlHttp.responseText, 2);
				break;
		}
	}
}


//异步读取回调函数3
function stateChanged_3(div_type, div_special_value_1, div_special_value_2){ 
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){
		switch(div_type){
			case 1:
				//alert(div_special_value_2);
				display_trackblog_tips_saved(div_special_value_1);
				g_html(div_special_value_2);
				URLListOrder = div_special_value_1 + 1;
				if(URLListOrder < TBP_url_list_length){
					send_trackblog(URLListOrder);
				}
				break;
			//manager_comment
			case 2:
				var td_comment = "td_comment_" + div_special_value_2;
				set_div(td_comment, xmlHttp.responseText, 2);
				g_html(div_special_value_1);
				break;
		}
	}
}