// JavaScript Document

String.prototype.Trim = function() { 
	return this.replace(/(^\s*)|(\s*$)/g, ""); 
}

function getFckEditorTextLength(fckName) {
	// This functions shows that you can interact directly with the editor area
	// DOM. In this way you have the freedom to do anything you want with it.
	
	// Get the editor instance that we want to interact with.
	var oEditor = FCKeditorAPI.GetInstance(fckName) ;

	// Get the Editor Area DOM (Document object).
	var oDOM = oEditor.EditorDocument ;

	var iLength ;

	// The are two diffent ways to get the text (without HTML markups).
	// It is browser specific.

	if ( document.all ) { // If Internet Explorer.
		var innerText = oDOM.body.innerText;
		iLength = innerText.length ;
	} else {// If Gecko.
		var r = oDOM.createRange() ;
		r.selectNodeContents( oDOM.body ) ;
		iLength = r.toString().length ;
	}

	return iLength;
}

// return the value of the radio button that is checked
// return an empty string if none are checked, or
// there are no radio buttons
function getCheckedValue(radioObj) {
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}

// set the radio button with the given value as being checked
// do nothing if there are no radio buttons
// if the given value does not exist, all the radio buttons
// are reset to unchecked
function setCheckedValue(radioObj, newValue) {
	if(!radioObj)
		return;
	var radioLength = radioObj.length;
	if(radioLength == undefined) {
		radioObj.checked = (radioObj.value == newValue.toString());
		return;
	}
	for(var i = 0; i < radioLength; i++) {
		radioObj[i].checked = false;
		if(radioObj[i].value == newValue.toString()) {
			radioObj[i].checked = true;
		}
	}
}

function checkMail(email) {
	var x = email;
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (filter.test(x)) return true;
	else return false;
}

function checkVote(myForm) {
	var grade = myForm.grade;
	var sendFlag = true;
	if (getCheckedValue(grade) == "") {
		alert("請先選擇分數");
		sendFlag = false;
	}
	if (sendFlag) {
		myForm.btnSubmit.disabled = "disabled";
	}
	
	return sendFlag;
}

function checkSearchBox(myForm) {
	var keyword = myForm.keyword;
	var sendFlag = true;
	
	if (keyword.value.Trim() == "") {
		alert("請輸入關鍵字");
		sendFlag = false;
		keyword.focus();
	}
	if (sendFlag) {
		myForm.btnSubmit.disabled = "disabled";
	}
	
	return sendFlag;
}

function checkContactUs(myForm) {
	var lastName = myForm.lastName;
	var firstName = myForm.firstName;
	var tel = myForm.tel;
	var email = myForm.email;
	var message = myForm.message;
	var sendFlag = true;
	
	if ((lastName.value.Trim() == "" || lastName.value.Trim() == "- 姓氏 -") && sendFlag){
		alert("請輸入聯絡人資料(姓氏)");
		sendFlag = false;
		lastName.focus();
	}
	
	if ((firstName.value.Trim() == "" || lastName.value.Trim() == "- 名字 -") && sendFlag){
		alert("請輸入聯絡人資料(名字)");
		sendFlag = false;
		firstName.focus();
	}
	
	if (tel.value.Trim() == "" && sendFlag){
		alert("請輸入聯絡電話");
		sendFlag = false;
		tel.focus();
	}
	
	if (email.value.Trim() == "" && sendFlag){
		alert("請輸入電郵地址");
		sendFlag = false;
		email.focus();
	} else if (!checkMail(email.value.Trim()) && sendFlag) {
		alert("電郵地址格式錯誤, 請重新輸入");
		sendFlag = false;
		email.focus();
	}
		
	if (message.value.Trim() == "" && sendFlag){
		alert("請輸入查詢內容");
		sendFlag = false;
		message.focus();
	}
	
	if (sendFlag) {
		myForm.btnSubmit.disabled = "disabled";
	}
	
	return sendFlag;
}

function checkReg(myForm) {
	var username = myForm.username;
	var pass = myForm.pass;
	var repass = myForm.pass;
	var email = myForm.email;
	var sendFlag = true;
	
	if (email.value.Trim() == "" && sendFlag){
		alert("請輸入電郵地址");
		sendFlag = false;
		email.focus();
	} else if (!checkMail(email.value.Trim()) && sendFlag) {
		alert("電郵地址格式錯誤, 請重新輸入");
		sendFlag = false;
		email.focus();
	}
	
	if (username.value.Trim() == "" && sendFlag){
		alert("請輸入用戶名稱");
		sendFlag = false;
		username.focus();
	}
	
	if (pass.value.Trim() == "" && sendFlag){
		alert("請輸入密碼");
		sendFlag = false;
		pass.focus();
	}
	
	if (repass.value.Trim() == "" && sendFlag){
		alert("請再一次輸入密碼");
		sendFlag = false;
		repass.focus();
	}
	
	if (sendFlag) {
		if (myForm.lastName.value == "- 姓氏 -")
			myForm.lastName.value = "";
		if (myForm.firstName.value == "- 名字 -")
			myForm.firstName.value = "";
		if (myForm.nickname.value == "- 如不填寫，跟用戶名稱一樣 -")
			myForm.nickname.value = "";
		myForm.btnSubmit.disabled = "disabled";
	}
	
	return sendFlag;
}

function checkLogin(myForm) {
	var username = myForm.username;
	var pass = myForm.pass;
	var sendFlag = true;
	
	if (username.value.Trim() == "" && sendFlag){
		alert("請輸入用戶名稱");
		sendFlag = false;
		username.focus();
	}
	
	if (pass.value.Trim() == "" && sendFlag){
		alert("請輸入密碼");
		sendFlag = false;
		pass.focus();
	}
	
	if (sendFlag) {
		myForm.btnSubmit.disabled = "disabled";
	}
	
	return sendFlag;
}

function checkQuestion(myForm) {
	var nid = myForm.nid;
	var sid = myForm.sid;
	var questionTitle = myForm.questionTitle;
	var questionDetails = myForm.questionDetails;
	var sendFlag = true;
	
	if (nid.value.Trim() == "0" && sendFlag){
		alert("請輸入問題分類");
		sendFlag = false;
		nid.focus();
	}
	
	if (sid.value.Trim() == "0" && sendFlag){
		alert("請輸入問題次分類");
		sendFlag = false;
		sid.focus();
	}
	
	if ((questionTitle.value.Trim() == "" || questionTitle.value.Trim() == "- 問題標題 -") && sendFlag){
		alert("請輸入您的問題");
		sendFlag = false;
		questionTitle.focus();
	}
	
	if (getFckEditorTextLength('questionDetails') <= 0 && sendFlag){
		alert("請詳細描述您的問題");
		sendFlag = false;
		//questionDetails.focus();
	}
	
	if (sendFlag) {
		myForm.btnSubmit.disabled = "disabled";
	}
	
	return sendFlag;
}

function checkAnswer(myForm) {
	var answerDetails = myForm.answerDetails;
	var sendFlag = true;
	
	if (getFckEditorTextLength('answerDetails') <= 0 && sendFlag){
		alert("請先輸入您的答案");
		sendFlag = false;
		//questionDetails.focus();
	}
	
	if (sendFlag) {
		myForm.btnSubmit.disabled = "disabled";
	}
	
	return sendFlag;
}

function checkContactUs(myForm) {
	var lastName = myForm.lastName;
	var firstName = myForm.firstName;
	var tel = myForm.tel;
	var email = myForm.email;
	var message = myForm.message;
	var sendFlag = true;
	
	if ((lastName.value.Trim() == "" || lastName.value.Trim() == "- 姓氏 -") && sendFlag){
		alert("請輸入聯絡人資料(姓氏)");
		sendFlag = false;
		lastName.focus();
	}
	
	if ((firstName.value.Trim() == "" || lastName.value.Trim() == "- 名字 -") && sendFlag){
		alert("請輸入聯絡人資料(名字)");
		sendFlag = false;
		firstName.focus();
	}
	
	if (tel.value.Trim() == "" && sendFlag){
		alert("請輸入聯絡電話");
		sendFlag = false;
		tel.focus();
	}
	
	if (email.value.Trim() == "" && sendFlag){
		alert("請輸入電郵地址");
		sendFlag = false;
		email.focus();
	} else if (!checkMail(email.value.Trim()) && sendFlag) {
		alert("電郵地址格式錯誤, 請重新輸入");
		sendFlag = false;
		email.focus();
	}
		
	if (message.value.Trim() == "" && sendFlag){
		alert("請輸入查詢內容");
		sendFlag = false;
		message.focus();
	}
	
	if (sendFlag) {
		myForm.btnSubmit.disabled = "disabled";
	}
	
	return sendFlag;
}

function checkForgotPass(myForm) {
	var email = myForm.email;
	var sendFlag = true;
	
	if (email.value.Trim() == "" && sendFlag){
		alert("請輸入已登記之電郵地址");
		sendFlag = false;
		email.focus();
	} else if (!checkMail(email.value.Trim()) && sendFlag) {
		alert("電郵地址格式錯誤, 請重新輸入");
		sendFlag = false;
		email.focus();
	}
	
	if (sendFlag) {
		myForm.btnSubmit.disabled = "disabled";
	}
	
	return sendFlag;
}
