/* ======= common use ======= */
function ajaxUpdateContent(pageUrl, par) {
	var gUpdater = new GlobalUpdater("content", pageUrl, encodeURI(par));
	gUpdater.setHintInside(true);
	gUpdater.setIfSessionCheck(false);
	gUpdater.update();
}
function updateFirstPageTabContent(liId, tabContent) {
	var gUpdater = new GlobalUpdater(
		"firstPageTabContent",
		"webui/home/hometabcontent.jsp",
		"tabContent=" + tabContent);
	gUpdater.setHintInside(true);
	gUpdater.setIfSessionCheck(false);
	gUpdater.update();
	hiliCurrentTab(liId);
}
function changeValidateImg() {
	$("valiImg").src = "validationImage?" + Math.random();
	$("validationCode").value = "";
	$("validationCode").focus();
}
function hiliCurrentTab(liId) {
	var liObj = $(liId);
	liObj.childNodes[0].blur();
	var liList = liObj.parentNode.childNodes;
	
	for(var i=0; i<liList.length; i++) {
		if(liList[i] === liObj) {
			liList[i].className = "current";
		} else {
			liList[i].className = "";
		}
	}
}
/**
 * IE对png图片的透明支持很不好，所以在IE下，需要对png图做相应的处理
 * 
 * @param {Object} pngImg
 */
function correctPNG(pngImg) {
	if(!document.all) {
		return;
	}
	var img = $(pngImg);
	var imgName = img.src.toUpperCase();
	if(imgName.substr(imgName.length-3, imgName.length) !== "PNG") {
		return;
	}
	
	var imgID = (img.id) ? "id='" + img.id + "' " : "";
	var imgClass = (img.className) ? "class='" + img.className + "' " : "";
	var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' ";
	var imgStyle = "display:inline-block;" + img.style.cssText;
	if(img.align == "left") {imgStyle = "float:left;" + imgStyle;}
	if(img.align == "right") {imgStyle = "float:right;" + imgStyle;}
	if(img.parentElement.href) {imgStyle = "cursor:hand;" + imgStyle;}
	var strNewHTML = "<span " + imgID + imgClass + imgTitle;
		strNewHTML += " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
		strNewHTML += "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader";
		strNewHTML += "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>";
	img.outerHTML = strNewHTML;
}
var lastSelAnchor = null;
function hiliCurrentAnchor(tdId) {
	if(lastSelAnchor) {
		lastSelAnchor.className = "sideAnchor";
	}
	var tdObj = $(tdId);
	lastSelAnchor = tdObj;

	tdObj.className = "sideAnchorSel";
}
function imgFitWidth(img, w) {//图片大小调整
	var imgObj = $(img);
	var percent = w / imgObj.width;
	
	if(percent >= 1) {
		return;
	}
	imgObj.width = imgObj.width * percent;
}
/* ======= main menu ======= */
var currSubShowed = null;
function showSubMenu(menuId) {
	if(currSubShowed) {
		currSubShowed.style.display = "none";
	}
	$(menuId + "_sub").style.display = "block";
	currSubShowed = $(menuId + "_sub");
}
function hideSubMenu(menuId, eve) {
	var x = Event.pointerX(eve);
	var y = Event.pointerY(eve);
	if(Position.within($(menuId), x, y) || Position.within($(menuId + "_sub"), x, y)) {
		return;
	}
	$(menuId + "_sub").style.display = "none";
}
/* ======= on body load ======= */
function initTitleImgRotator() {
	var imgRotator = new ImgRotator("titleImg");
	imgRotator.addImgUrl("images/img_title_1.gif");
	imgRotator.addImgUrl("images/img_title_2.gif");
	imgRotator.addImgUrl("images/img_title_3.gif");
	imgRotator.start();
}
function bodyOnload(url, param) {
	ajaxUpdateContent(url, param);
	
	initTitleImgRotator();
}
/* ======= search ======= */
function insiteSearch(fm) {
	fm.searchText.value = fm.searchText.value.trim();
	window.location = "?d=search&par=searchText=" + encodeURIComponent(fm.searchText.value);
	return false;
}
/* ======= viewercomment (news | activity | activityimage) ======= */
function updateOneViewercomment(commentId) {
	var gUpdater = new GlobalUpdater(
			commentId,
			"webui/common/_oneviewercomment.jsp",
			"commentId=" + commentId);
	gUpdater.setIfSessionCheck(false);
	gUpdater.setHintInside(true);
	gUpdater.update();
}
function saveViewercomment(fm, forWhom) {
	// trim form
	fm.poster.value = fm.poster.value.trim();
	fm.validationCode.value = fm.validationCode.value.trim();
	fm.commentContent.value = fm.commentContent.value.trim();
	
	var errMessage = "";
	if(!fm.validationCode.value) {
		errMessage += "\t请填写验证码\n";
	}
	if(!fm.commentContent.value) {
		errMessage += "\t请填写您的评论\n";
	}
	if(errMessage) {
		alert("提示:\n" + errMessage);
		return false;
	}
	
	var gRequest = new GlobalRequest(
		"viewercomment.do",
		Form.serialize(fm),
		function() {
			var xmlHttpReq = arguments[0];
			var returnJson = eval("(" + xmlHttpReq.responseText.trim() + ")");
			if(returnJson.error) {
				switch (returnJson.error) {
				case "parent-not-exit":
					alert("操作失败:\n\t您正在评论的文章或新闻已被删除，请刷新页面^^");
					break;
				case "valicode-wrong":
					alert("操作失败:\n\t验证码错误");
					changeValidateImg();
					break;
				default:
					alert("操作失败:\n\t未处理错误 - 请联系开发人员^_^\nErrorCode: " + returnJson.error);
					break;
				}
			} else {
				if(forWhom == "news") {
					ajaxUpdateContent("webui/news/newsdetail.jsp", "newsId=" + fm.parentId.value);
				} else if(forWhom == "activity") {
					ajaxUpdateContent("webui/employeezone/activitydetail.jsp", "activityId=" + fm.parentId.value);
				} else if(forWhom == "activityimage") {
					ajaxUpdateContent("webui/employeezone/activitydetail_image.jsp", "activityimageId=" + fm.parentId.value);
				}
			}
		});
	gRequest.setIfSessionCheck(false);
	gRequest.request();
	return false;
}
function inactivateViewercomment(commentId) {
	new GlobalRequest(
		"viewercomment.do",
		"commentId=" + commentId + "&method=inactivate",
		function() {
			var xmlHttpReq = arguments[0];
			var returnJson = eval("(" + xmlHttpReq.responseText.trim() + ")");
			if(returnJson.error) {
				switch (returnJson.error) {
				case "viewercomment-not-exist":
					alert("操作失败:\n\t该评论已被删除");
					break;
				default:
					alert("操作失败:\n\t未处理错误 - 请联系开发人员^_^\nErrorCode: " + returnJson.error);
					break;
				}
			} else {
				updateOneViewercomment(commentId);
				new SmartHint("评论已被成功屏蔽", commentId).show();
			}
		}).request();
}
function activateViewercomment(commentId) {
	new GlobalRequest(
		"viewercomment.do",
		"commentId=" + commentId + "&method=activate",
		function() {
			var xmlHttpReq = arguments[0];
			var returnJson = eval("(" + xmlHttpReq.responseText.trim() + ")");
			if(returnJson.error) {
				switch (returnJson.error) {
				case "viewercomment-not-exist":
					alert("操作失败:\n\t该评论已被删除");
					break;
				default:
					alert("操作失败:\n\t未处理错误 - 请联系开发人员^_^\nErrorCode: " + returnJson.error);
					break;
				}
			} else {
				updateOneViewercomment(commentId);
				new SmartHint("评论已被成功取消屏蔽", commentId).show();
			}
		}).request();
}
function deleteViewercomment(commentId) {
	if(window.confirm("确定要彻底删除该评论吗?")) {
		new GlobalRequest(
			"viewercomment.do",
			"commentId=" + commentId + "&method=del",
			function() {
				var xmlHttpReq = arguments[0];
				var returnJson = eval("(" + xmlHttpReq.responseText.trim() + ")");
				if(returnJson.error) {
					switch (returnJson.error) {
					default:
						alert("操作失败:\n\t未处理错误 - 请联系开发人员^_^\nErrorCode: " + returnJson.error);
						break;
					}
				} else {
					Element.remove(commentId);
				}
			}).request();
	}
}
/* ======= news ======= */
/* ======= products ======= */
function gotoProductsAnchor(anchor) {
	if(!$("productsContent")) {
		return;
	}
	var url = "";
	switch (anchor) {
		case "busnet":
			url = "webui/products/busnet.jsp";
			break;
		case "lcdnet":
			url = "webui/products/lcdnet.jsp";
			break;
		case "stationbox":
			url = "webui/products/stationbox.jsp";
			break;
		case "tribox":
			url = "webui/products/tribox.jsp";
			break;
		case "busbody":
			url = "webui/products/busbody.jsp";
			break;
		case "datareport":
			url = "webui/products/datareport.jsp";
			break;
		case "outsidebox":
			url = "webui/products/outsidebox.jsp";
			break;
		case "topbox":
			url = "webui/products/topbox.jsp";
		default: 
			break;
	}
	
	if(url) {
		var gUpdater = new GlobalUpdater("productsContent", url);
		gUpdater.setIfSessionCheck(false);
		gUpdater.setHintInside(true);
		gUpdater.update();
	}
}
function showDatareport(liId) {
	$("r1").className = "";
	$("r2").className = "";
	$("r3").className = "";	
	$("r1_content").style.display = "none";
	$("r2_content").style.display = "none";
	$("r3_content").style.display = "none";
	
	$(liId).className = "current";
	$(liId + "_content").style.display = "";
}
/* ======= service ======= */
function showBizseries(tdId) {
	$("bs1").className = "sideAnchor";
	$("bs2").className = "sideAnchor";
	$("bs3").className = "sideAnchor";	
	$("bs1_content").style.display = "none";
	$("bs2_content").style.display = "none";
	$("bs3_content").style.display = "none";
	
	$(tdId).className = "sideAnchorSel";
	$(tdId + "_content").style.display = "";
}
/* ======= joinus ======= */
function updateOneAdvice(adviceId) {
	var gUpdater = new GlobalUpdater(
			adviceId,
			"webui/joinus/_oneadvice.jsp",
			"adviceId=" + adviceId);
	gUpdater.setIfSessionCheck(false);
	gUpdater.setHintInside(true);
	gUpdater.update();
}
function saveNewAdvice(fm) {
	// trim form
	fm.poster.value = fm.poster.value.trim();
	fm.email.value = fm.email.value.trim();
	fm.adviceContent.value = fm.adviceContent.value.trim();
	fm.validationCode.value = fm.validationCode.value.trim();
	
	var errMessage = "";
	if(!fm.validationCode.value) {
		errMessage += "\t请填写验证码\n";
	}
	if(fm.email.value && !InputChecker.isEmail(fm.email.value)) {
		errMessage += "\t邮箱不是必填的，但格式必须正确\n";
	}
	if(!fm.adviceContent.value) {
		errMessage += "\t请填写您的意见\n";
	}
	if(errMessage) {
		alert("提示:\n" + errMessage);
		return false;
	}
	
	var gRequest = new GlobalRequest(
		"advice.do",
		Form.serialize(fm),
		function() {
			var xmlHttpReq = arguments[0];
			var returnJson = eval("(" + xmlHttpReq.responseText.trim() + ")");
			if(returnJson.error) {
				switch (returnJson.error) {
				case "valicode-wrong":
					alert("操作失败:\n\t验证码错误");
					changeValidateImg();
					break;
				default:
					alert("操作失败:\n\t未处理错误 - 请联系开发人员^_^\nErrorCode: " + returnJson.error);
					break;
				}
			} else {
				alert("提交成功!\n\t新主流感谢您的宝贵意见");
				window.location = "?d=joinus&p=advice"
			}
		});
	gRequest.setIfSessionCheck(false);
	gRequest.request();
	return false;
}
function deleteAdvice(adviceId) {
	if(window.confirm("确定要彻底删除该意见吗?")) {
		new GlobalRequest(
			"advice.do",
			"adviceId=" + adviceId + "&method=del",
			function() {
				var xmlHttpReq = arguments[0];
				var returnJson = eval("(" + xmlHttpReq.responseText.trim() + ")");
				if(returnJson.error) {
					switch (returnJson.error) {
					default:
						alert("操作失败:\n\t未处理错误 - 请联系开发人员^_^\nErrorCode: " + returnJson.error);
						break;
					}
				} else {
					$(adviceId).parentNode.removeChild($(adviceId));
				}
			}).request();
	}
}
function replyAdvice(adviceId) {
	$(adviceId + "_reply").value = "";
	$(adviceId + "_reply").innerHTML = "";
	Element.toggle($(adviceId + "_replyDiv"));
}
function saveReplyAdvice(fm) {
	// trim form
	fm.adviceReply.value = fm.adviceReply.value.trim();
	
	var errMessage = "";
	if(!fm.adviceReply.value) {
		errMessage += "\t回复内容不可为空\n";
	}
	if(errMessage) {
		alert("提示:\n" + errMessage);
		return false;
	}
	
	new GlobalRequest(
		"advice.do",
		Form.serialize(fm),
		function() {
			var xmlHttpReq = arguments[0];
			var returnJson = eval("(" + xmlHttpReq.responseText.trim() + ")");
			if(returnJson.error) {
				switch (returnJson.error) {
				case "advice-not-exist":
					alert("操作失败:\n\t您正在回复的意见不存在，请刷新页面");
					break;
				default:
					alert("操作失败:\n\t未处理错误 - 请联系开发人员^_^\nErrorCode: " + returnJson.error);
					break;
				}
			} else {
				updateOneAdvice(fm.adviceId.value);
				new SmartHint("回复成功!", fm.adviceId.value).show();
			}
		}).request();
	return false;
}
function unreplyAdvice(adviceId) {
	if(window.confirm("确定要清空对该意见的回复吗?")) {
		new GlobalRequest(
			"advice.do",
			"adviceId=" + adviceId + "&method=unreply",
			function() {
				var xmlHttpReq = arguments[0];
				var returnJson = eval("(" + xmlHttpReq.responseText.trim() + ")");
				if(returnJson.error) {
					switch (returnJson.error) {
					case "advice-not-exist":
						alert("操作失败:\n\t您正在回复的意见不存在，请刷新页面");
						break;
					default:
						alert("操作失败:\n\t未处理错误 - 请联系开发人员^_^\nErrorCode: " + returnJson.error);
						break;
					}
				} else {
					updateOneAdvice(adviceId);
					new SmartHint("回复已被成功清除", adviceId).show();
				}
			}).request();
	}
}
/* ======== support ======= */
function iframeResize(dyniframe) {
	if(document.getElementById) {
		if(dyniframe) {
			dyniframe.style.display = "block";
			if(dyniframe.contentDocument) {
				dyniframe.height = dyniframe.contentDocument.body.scrollHeight;
				dyniframe.width = dyniframe.contentDocument.body.scrollWidth;
			} else if(dyniframe.Document && dyniframe.Document.body.scrollHeight) {
				dyniframe.height = dyniframe.Document.body.scrollHeight + (dyniframe.Document.body.offsetHeight - dyniframe.Document.body.clientHeight);
				dyniframe.width = dyniframe.Document.body.scrollWidth + (dyniframe.Document.body.offsetWidth - dyniframe.Document.body.clientWidth);
			}
		}
	}
}
function updateContentFrame(url) {
	if(window.addEventListener) {
		window.addEventListener("load", iframeResize, false);
	} else if(window.attachEvent) {
		window.attachEvent("onload", iframeResize)
	} else {
		window.onload = iframeResize;
	}
	$("content").innerHTML = "<iframe id=\"contentFrame\" onload=\"iframeResize(this)\" frameborder=0 src=\"" + url + "\"></iframe>";
}
/* ======= employeezone ======= */
function employeezoneLogin(fm) {
	// trim form
	fm.userName.value = fm.userName.value.trim();
	
	var inputErr = false;
	if(!fm.userName.value) {
		inputErr = true;
		new SmartHint("请填写邮箱用户名", "userNameHint").show();
	}
	if(!fm.passwd.value) {
		inputErr = true;
		new SmartHint("请填写密码", "passwdHint").show();
	}
	if(inputErr) {
		return false;
	}
	
	var gRequest = new GlobalRequest(
		"portal.do",
		Form.serialize(fm),
		function() {
			var xmlHttpReq = arguments[0];
			var returnJson = eval("(" + xmlHttpReq.responseText.trim() + ")");
			if(returnJson.error) {
				switch (returnJson.error) {
				case "wrong-input":
					alert("操作失败:\n\t您输入的用户名或密码有错误");
					break;
				default:
					alert("操作失败:\n\t未处理错误 - 请联系开发人员^_^\nErrorCode: " + returnJson.error);
					break;
				}
			} else {
				window.location = window.location;
			}
		});
	gRequest.setIfSessionCheck(false);
	gRequest.request();
	return false;
}
/* ======= video ======= */
function showStationVideo(station_id, station_name) {
	var dw = dragWinHash["stationVedioWin"];
	if(!dw) {
		dw = new DragWin("stationVedioWin");
	}
	dw.setMaxHeight(400);
	dw.setWidth(483);
	dw.setCloseInner("<font color=red>X</font>");
	dw.setHeaderInner("<font size=-1><b>" + station_name + "视频监测</b>&nbsp;<span id='serverTimeContainer'></span></font>");
	dw.setBodyInner("<div id='playerContainer'></div>");
	dw.show("showVideoDiv");
	getServerTime();
	getPlayer(station_id);
}
function getServerTime() {
	var gRequest = new GlobalRequest(
		"time.do",
		"method=getAsx",
		function() {
			if($("serverTimeContainer")) {
				var args = $A(arguments);
				var xmlHttpReq = args.shift();
				var respText = xmlHttpReq.responseText.trim();
				$("serverTimeContainer").innerHTML = respText;
				setTimeout(getServerTime,500);
			}
		});
	gRequest.setIfSessionCheck(false);
	gRequest.setIfShowHint(false);
	gRequest.request();
	return false;
}
function getPlayer(station_id) {
	var gRequest = new GlobalRequest(
		"video.do",
		"station_id=" + station_id + "&method=getAsx",
		function() {
			var args = $A(arguments);
			var xmlHttpReq = args.shift();
			var respText = xmlHttpReq.responseText.trim();
			var playerHtml = "\
			<object classid='CLSID:22D6f312-B0F6-11D0-94AB-0080C74C7E95' style='width:360px !important;width:480px;height:400px !important;height:400px'\n\
							STANDBY = 'Loading Windows Media Player components...' TYPE='application/x-oleobject' VIEWASTEXT id='viewplayer'>\n\
							<PARAM NAME='SRC' VALUE='"+respText+"'>\n\
							<PARAM NAME='AutoStart' VALUE='true'>\n\
							<PARAM NAME='ShowStatusBar' VALUE='true'>\n\
							<PARAM NAME='ShowControls' VALUE='False'>\n\
							<PARAM NAME='ShowTracker' VALUE='False'>\n\
							<PARAM NAME='EnableTracker' VALUE='False'>\n\
							<PARAM NAME='ShowPositionControls' VALUE='False'>\n\
							<PARAM NAME='EnablePositionControls' VALUE='False'>\n\
							<PARAM NAME='enableContextMenu' VALUE='true'>\n\
							<PARAM NAME='ShowControls' VALUE='false'>\n\
							<PARAM NAME='ShowStatusBar' VALUE='false'>\n\
							<PARAM NAME='DisplaySize' VALUE='0'>\n\
							<embed src='"+respText+"' scale='tofit' controller='false'\n\
								autoplay='true' controller='false' scale='tofit'\n\
								type='video/quicktime'\n\
								pluginspage='http://www.apple.com/quicktime/download/index.html'>\n\
							</embed></object>";
			$("playerContainer").innerHTML = playerHtml;
		});
	gRequest.setIfSessionCheck(false);
	gRequest.request();
	return false;
}