// JavaScript Document
$(document).ready(function(){
	//根據年份月份來取天數
	Vote.getDaysWithYM();
						   });

var Vote = ({
	voteTitleErrMsg: '投票主題不能為空',
	optionErrMsg: '至少填寫一個候選項',
	optionNumsMsg: '至少兩個候選項',
	lessMsg: '候選項不能少於可投選項',
	dateMsg: '截止時間不能早於當前時間',
	choseOptionMsg: '請選擇可投選項',
	/**
	* 顯示、隱藏投票的詳細說明
	**/
	showHidVoteInfoFrom: function() {
		if ( $("#voteInfo").css("display") == "none" ) {
			$("#voteInfo").show();
			$("#addVoteInfoLink").text("隱藏投票詳細說明");
		} else {
			$("#voteInfo").hide();
			$("#addVoteInfoLink").text("添加投票詳細說明");
		}
	},
	/**
	* 顯示更多候選項
	**/
	showMoreOption: function() {
		$("#moreOption").show();
		$("#moreOptionTr").hide();
	},
	/**
	* 檢查要提交的信息
	**/
	chkInfo: function(obj) {
		if ( $("#voteTitle").val().Trim() == '' ) {
			msgBox.showText(Vote.voteTitleErrMsg);
			return false;
		}
		
		var choseOptionNums = $("#choseOption").val();
		var optionNums = Vote.chkOption();
		
		//判斷可投選項不能為空
		if ( choseOptionNums == 0 ) {
			msgBox.showText(Vote.choseOptionMsg);
			return false;
		}
		
		//判斷候選項不能少於兩項
		if ( optionNums < 2 ) {
			msgBox.showText(Vote.optionNumsMsg);
			return false;
		}
		//判斷可投選項不能多餘候選項
		if ( choseOptionNums > optionNums ) {
			msgBox.showText(Vote.lessMsg);
			return false;
		}
		//判斷截止時間不能早於當前時間
		var endYear = $("#year").val();
		var endMonth = $("#month").val();
		var endDay = $("#day").val();
		var endTime = $("#time").val();
		
		if ( !Vote.chkEndDateCurentDate(endYear,endMonth,endDay,endTime) ) {
			msgBox.showText(Vote.dateMsg);
			return false;
		}
		
		obj.form.submit();
	},
	/**
	* 判斷截止時間不能早於當前時間
	* @param Int endMonth
	* @param
	**/
	chkEndDateCurentDate: function(endYear,endMonth,endDay,endTime) {
		var date = new Date();
		var curentYear = date.getFullYear();
		var curentMonth = date.getMonth() + 1;
		var curentDay = date.getDate();
		var curentHour = date.getHours();
		
		if ( endYear < curentYear ) {
			return false;	
		} else if ( endYear == curentYear ) {
			if ( endMonth < curentMonth ) {
				return false;
			} else if ( endMonth == curentMonth ) {
				if ( endDay < curentDay ) {
					return false;
				} else if ( endDay == curentDay ) {
					if ( endTime < curentHour || endTime == curentHour ) {
						return false;
					}
				}
			}
		}
		
		return true;
	},
	/**
	* 檢查候選項是否為空
	* @return Int
	**/
	chkOption: function() {
		var num = 10;
		if ( $("#moreOption").css("display") == "table-row-group" || $("#moreOption").css("display") == "block" ) {
			num = 20;
		}
		
		var nums = 0;
		for ( var i = 1; i <= num; i++ ) {
			if ( $("#options" + i).val().Trim() != '' ) {
				nums++;
			}
		}
		if ( nums >= 2 ) {
			return nums;
		}
		return false;
	},
	/**
	* 根據年份，月份來取天數
	**/
	getDaysWithYM: function() {
		var year = parseInt($("#year").val());
		var month = parseInt($("#month").val());
		var days;
		
		switch(month) {
			case 2:
				if ( this.chkRPyear(year) ) {
					days = 29;
				} else {
					days = 28;
				}
				break;
			case 4:
				days = 30;
				break;
			case 6:
				days = 30;
				break;
			case 9:
				days = 30;
				break;
			case 11:
				days = 30;
				break;
			default:
				days = 31;
				break;
		}
		
		this.setDayList(days);
	},
	/**
	* 設定天數
	* @param Int days
	**/
	setDayList: function(days) {
		for ( var i = 28; i <= days; i++ ) {
			$("#day"+i).css("display","block");
		}
		
		for ( i = days+1; i <= 31; i++ ) {
			$("#day"+i).css("display","none");
		}
	},
	/**
	* 判斷是閏年還是平年
	* @param Int year
	* @return bool (閏年是1 ， 平年是0)
	**/
	chkRPyear: function(year) {
		if ( year%400 == 0 || (year%4 == 0 && year%100 != 0) ) {
			return 1;
		} else {
			return 0;
		}
	}
});

/**
* 檢查長度
**/
var cheLen = ({
	checkLen: function(obj,wordNums,index) {
		var val = obj.value;
		var len = val.length;
		if ( val == '' ) {
			len = '0';
		}
		
		var wordCountNext = parseInt(wordNums) + parseInt(index);
		
		if ( len > wordNums ) {
			obj.value = val.substr(0,wordNums);
			$("#wordCount" + wordCountNext).html(wordNums);
			return false;
		}
		$("#wordCount" + wordCountNext).html(len);
	}		  
});