﻿var debug= true;

function d(msg) {
	if(debug) {
		alert(msg);
	}
}

function error(msg) {
	alert(msg);
}

 var showPpl = function(userId) {
	if(userId==0) {alert("该用户匿名，无法显示详细信息");return false;}
	window.open("/Main/a/UserView," + userId);
}

$(function() {
	if(!appPath) {
		appPath = "/";
	}
	var cid = document.getElementById("cid").value;
	var tid = document.getElementById("tid").value;
	loadPostBox();

	if(!isNaN(tid) && tid > 0) {
	//	var tcid = document.getElementById("tcid").value;
	//	var tname = document.getElementById("tname").value;
	//	loadTopic(tid, tcid, tname,1);
	} else if (!isNaN(cid) && cid>0) {
		var cname = document.getElementById("cname").value;
		loadData(cid,cname,null,1);
	} else {
		loadData(0,null,null,1);
	}

	loadListBox("Hottest");
	loadListBox("Newest");
});

//////////////////////////////////////////////////////////////////////Ajax///////////////

function loadData(classId, className, sortType, pageNum, searchType, searchValue) {
	loadBegin();
	var params = {};
	if(classId) {
		params.classId = classId;
	}
	if(className) {
		params.className = className;
	}
	if(sortType) {
		params.sortType = sortType;
	}
	if(pageNum) {
		params.pageNum = pageNum;
	} else {
		params.pageNum = 1;
	}
	if(searchType) {
		params.searchType = searchType;
	} else {
		params.searchType = "None";
	}
	
	if(searchValue) {
		params.searchValue = searchValue;
	}
	
	setupPostBox(0, classId, "", "请填写标题");
	clearDiv("divTopic");
	
	$.post(
		appPath + "Provider/TalkListProvider.ashx",
		params,
		function(data) {
			$('#divData').html(data);
			loadEnd();
			// loadPostBox(classId);//刷新PostBox的默认分类
		}
	);
}

function loadBegin() {
	//d("Go!");
	$('div#divData').removeClass("hidden").addClass("mh300").block({
		message: '数据加载中...',
		css: { padding: '10px', backgroundColor: '#000', opacity: '.5', color: '#fff', border: '1px solid #aaa' }
	});
}

function loadEnd() {
	$('div#divData').removeClass("mh300").unblock();
}

function loadTopic(topicId, classId, title, pageNum, listNum) {
	if(topicId <=0) {
		error("抱歉，无法打开该话题！\n请与管理员联系。");
		return false;
	}
	if(!pageNum) {pageNum = 1;}
	
	if(title) {
		setupPostBox(topicId, classId, "none", "回复：" + title);
	} else {
		setupPostBox(topicId, classId, "none");
	}
	
	clearDiv("divData");
	
	$('div#divTopic').removeClass("hidden").addClass("mh300").block({
		message: '加载中...',
		css: { padding: '10px', backgroundColor: '#000', opacity: '.5', color: '#fff', border: '1px solid #aaa' }
	});
	
	var params = {};
	params.topicId = topicId;
	params.classId = classId;
	params.pageNum = pageNum;
	params.listNum = listNum;

	$.post(
		appPath + "Provider/TalkTopicProvider.ashx",
		params,
		function(data) {
			//d(data);
			var pos = data.toString().indexOf('|');
			window.listNum = parseInt(data.toString().substring(0, pos));
			document.getElementById("divTopic").innerHTML = data.toString().substring(pos+1);
			$('div#divTopic').unblock();
		}
	);
}

function loadLoginBox() {
	if(document.getElementById("spLoginBox")) {
		$.post(
			appPath + "Provider/TalkLoginBoxProvider.ashx",
			{},
			function(data) {
				document.getElementById("spLoginBox").innerHTML = data;
				if(document.getElementById("username")) {
					//document.getElementById("username").focus();
				}
				$('div#divTopic').unblock();
			}
		);
	}
}

function setupPostBox(parentId, classId, selClassIdDisplay, title) {
	if(document.getElementById("hdParentId"))
		document.getElementById("hdParentId").value=parentId;
	switchClass(classId);
	if(document.getElementById("postbox_select_classId"))
		document.getElementById("postbox_select_classId").style.display=selClassIdDisplay;
	if(document.getElementById("inputTitle") && title) {
		document.getElementById("inputTitle").value=title;
	}
}

function loadListBox(_loadType) {
	var theDiv = $('div#div'+ _loadType);
	theDiv.block({
		message: '数据加载中...',
		css: { padding: '10px', backgroundColor: '#000', opacity: '.5', color: '#fff', border: '1px solid #aaa' }
	});
	$.post(
		appPath + "Provider/TalkListBoxProvider.ashx",
		{loadType:_loadType},
		function(data) {
			document.getElementById('div'+ _loadType).innerHTML = data;
			theDiv.unblock();
		}
	);
}

function loadPostBox() {
	$('span#divPostBox').addClass("mh300").block({
		message: '加载中...',
		css: { padding: '10px', backgroundColor: '#000', opacity: '.5', color: '#fff', border: '1px solid #aaa' }
	});
	//document.getElementById('divPostBox').innerHTML="";
	
	$.post(
		appPath + "Provider/TalkPostBoxProivder.ashx",
		{},
		function(data) {
			//document.getElementById('divPostBox').innerHTML=data;
			$('div#spPostBox').html(data);
			$('div#spPostBox').removeClass("mh300").unblock();
			loadLoginBox();
			var tid = document.getElementById("tid").value;
			if(!isNaN(tid) && tid > 0) {
				var tcid = document.getElementById("tcid").value;
				var tname = document.getElementById("tname").value;
				loadTopic(tid, tcid, tname, 1);
			}
		}
	);
}

function switchClass(classId) {
	var selClass = document.getElementById("postbox_select_classId");
	if(selClass) {
		for (var i =0; i < selClass.options.length; i++) {
			//alert(selClass.options[i].value);
			if(selClass.options[i].value == classId) {
				selClass.options[i].selected = "selected";
			}
		}
	} 
}

function doLogin(loginName, loginPwd) {
	$('#liLoading').css({"display":"block"});
	$.post(
		//appPath + "Provider/TalkLoginProvider.ashx",
		//{loginName:loginName, loginPwd:loginPwd},
		appPath + "Provider/LoginProvider.ashx", //with sso
		{action:"loginin", username:loginName, password:loginPwd},
		function(data) {
			if(data != "success") {
				$('#errorMsg').html(data);
			} else {
				loadLoginBox();
			}
			$('#liLoading').css({"display":"none"});
		}
	);
}

function doPost(title, content, classId, className, parentId, beAnonymous) {
	if(!parentId) {parentId = 0;}
	if(!beAnonymous) beAnonymous = "false";
	var params = {};
	params.title = title;
	params.content = content;
	params.classId = classId;
	params.parentId = parentId;
	params.bAnonymous = beAnonymous;
	
	//alert(params.bAnonymous);
	
	$.post(
		appPath + "Provider/TalkDataProcessor.ashx",
		params,
		function(data) {
			if(data == "check") {
				alert("回复已发表,请等待管理员的审核通过!");
				document.getElementById("inputTitle").value = "";
				document.getElementById("inputContent").value = "";
			} else if(data!="Success") {
				//handle error
			} else {
				//$("#postResultMsg").html("<label style=\"\">您的话题已提交</label>");
				if(parentId<=0) {
					loadData(classId, className);
					//loadPostBox();
					loadListBox("Hottest");
					loadListBox("Newest");
					document.getElementById("inputTitle").value = "请填写标题";
				} else {
					var _title = "";
					if(document.getElementById("topicTitle")) {
						_title = document.getElementById("topicTitle").innerHTML;
					}

					loadTopic(parentId, classId, _title, 1, window.listNum);
				}
				
				document.getElementById("inputContent").value = "";
			}
		}
	);
}

function preReply(replyTo) {
	document.getElementById("inputTitle").value = "回复：" + replyTo;
	document.getElementById("inputTitle").focus();
}

/////////////////////////////////////////////////////////////////////////////////////////

function hasValue(_value) {
	if(!_value) return false;
	for(var i = 0; i < _value.length; i++) {
		if(_value.charAt(i) != ' ') return true;
	}
	return false;
}

function clearDiv(divId) {
	document.getElementById(divId).innerHTML="";
	$("div#" + divId).addClass("hidden");
}

/////////////////////////////Page Specified//////////////////////////////

/////////////////////////TalkPostBox//////////////////
	function switchAnonymous(src) {
		if(document.getElementById("loginBox")) {
			document.getElementById("loginBox").style.display = src.checked ? "none" : "block";
		}
		document.getElementById("hdBeAnonymouse").value = src.checked;
	}
	
	function doPostReply() {
		if(document.getElementById("hdBeAnonymouse").value=="true") {
			checkAndPost();
		} else {
			$.post(
				appPath + "Provider/LoginStatusProvider.ashx",
				{},
				function(data) {
					if(data=="") {
						loadLoginBox();
					} else {
						checkAndPost();
					}
				}
			);
		}
	}
	
	function checkAndPost() {
		if(!document.getElementById('cbAnonymous').checked && document.getElementById("hdIsLogin").value != "true") {
			alert("请您先登录再发表留言\n或者您可以选择匿名发表。");
			document.getElementById("username").focus();
		} else {
			var vInputTitle = document.getElementById("inputTitle").value;
			var vInputContent = document.getElementById("inputContent").value;
			if(!hasValue(vInputTitle) || vInputTitle=="请填写标题") {
				alert("请您输入标题");
				document.getElementById("inputTitle").select();
				return false;
			} else if (!hasValue(vInputContent)) {
				alert("请您输入内容");
				document.getElementById("inputContent").focus();
				return false;
			} else {
				var theDll = document.getElementById("postbox_select_classId");
				if(theDll.value == "0") {
					alert("请您选择分类");
					theDll.focus();
					return false;
				}
				
				var selectedText = theDll.options[theDll.selectedIndex].innerHTML;
				
				var parentId = document.getElementById("hdParentId").value;
				var beAnonymous = document.getElementById("hdBeAnonymouse").value;
				doPost(encodeURI(vInputTitle), encodeURI(vInputContent), theDll.value, encodeURI(selectedText), parentId, beAnonymous);
			}
		}
	}
	
	function _login() {
		var loginName = document.getElementById("username").value;
		var loginPwd = document.getElementById("password").value;
		if(!hasValue(loginName)) {
			alert("请输入用户名");
			document.getElementById("username").focus();
			return false;
		} else if (!hasValue(loginPwd)) {
			alert("请输入密码");
			document.getElementById("password").focus();
			return false;
		} else {
			//doLogin(loginName,loginPwd);
			doLogin();
		}
	}