var lunarInfo=new Array(
	0x04bd8,0x04ae0,0x0a570,0x054d5,0x0d260,
	0x0d950,0x16554,0x056a0,0x09ad0,0x055d2,
	0x04ae0,0x0a5b6,0x0a4d0,0x0d250,0x1d255,
	0x0b540,0x0d6a0,0x0ada2,0x095b0,0x14977,
	0x04970,0x0a4b0,0x0b4b5,0x06a50,0x06d40,
	0x1ab54,0x02b60,0x09570,0x052f2,0x04970,
	0x06566,0x0d4a0,0x0ea50,0x06e95,0x05ad0,
	0x02b60,0x186e3,0x092e0,0x1c8d7,0x0c950,
	0x0d4a0,0x1d8a6,0x0b550,0x056a0,0x1a5b4,
	0x025d0,0x092d0,0x0d2b2,0x0a950,0x0b557,
	0x06ca0,0x0b550,0x15355,0x04da0,0x0a5d0,
	0x14573,0x052d0,0x0a9a8,0x0e950,0x06aa0,
	0x0aea6,0x0ab50,0x04b60,0x0aae4,0x0a570,
	0x05260,0x0f263,0x0d950,0x05b57,0x056a0,
	0x096d0,0x04dd5,0x04ad0,0x0a4d0,0x0d4d4,
	0x0d250,0x0d558,0x0b540,0x0b5a0,0x195a6,
	0x095b0,0x049b0,0x0a974,0x0a4b0,0x0b27a,
	0x06a50,0x06d40,0x0af46,0x0ab60,0x09570,
	0x04af5,0x04970,0x064b0,0x074a3,0x0ea50,
	0x06b58,0x055c0,0x0ab60,0x096d5,0x092e0,
	0x0c960,0x0d954,0x0d4a0,0x0da50,0x07552,
	0x056a0,0x0abb7,0x025d0,0x092d0,0x0cab5,
	0x0a950,0x0b4a0,0x0baa4,0x0ad50,0x055d9,
	0x04ba0,0x0a5b0,0x15176,0x052b0,0x0a930,
	0x07954,0x06aa0,0x0ad50,0x05b52,0x04b60,
	0x0a6e6,0x0a4e0,0x0d260,0x0ea65,0x0d530,
	0x05aa0,0x076a3,0x096d0,0x04bd7,0x04ad0,
	0x0a4d0,0x1d0b6,0x0d250,0x0d520,0x0dd45,
	0x0b5a0,0x056d0,0x055b2,0x049b0,0x0a577,
	0x0a4b0,0x0aa50,0x1b255,0x06d20,0x0ada0);
	
//====================================== 傳回農曆 y年的總天數
function lYearDays(y) {
	var i, sum = 348
	for(i=0x8000; i>0x8; i>>=1) sum += (lunarInfo[y-1900] & i)? 1: 0
	return(sum+leapDays(y))
}

//====================================== 傳回農曆 y年閏月的天數
function leapDays(y) {
	if(leapMonth(y)) return((lunarInfo[y-1900] & 0x10000)? 30: 29)
	else return(0)
}

//====================================== 傳回農曆 y年閏哪個月 1-12 , 沒閏傳回 0
function leapMonth(y) {
	return(lunarInfo[y-1900] & 0xf)
}

//====================================== 傳回農曆 y年m月的總天數
function monthDays(y,m) {
	return( (lunarInfo[y-1900] & (0x10000>>m))? 30: 29 )
}

//====================================== 算出農曆, 傳入日期物件, 傳回農曆日期物件
// 該物件屬性有 .year .month .day .isLeap .yearCyl .dayCyl .monCyl
function Lunar(objDate) {

	var i, leap=0, temp=0
	var baseDate = new Date(1900,0,31)
	var offset = (objDate - baseDate)/86400000
 
	this.dayCyl = offset + 40
	this.monCyl = 14
 
	for(i=1900; i<2050 && offset>0; i++) {
		temp = lYearDays(i)
		offset -= temp
		this.monCyl += 12
	}
 
	if(offset<0) {
		offset += temp;
		i--;
		this.monCyl -= 12
	}
 
	this.year = i
	this.yearCyl = i-1864
 
	leap = leapMonth(i) //閏哪個月
	this.isLeap = false
 
	for(i=1; i<13 && offset>0; i++) {
		//閏月
		if(leap>0 && i==(leap+1) && this.isLeap==false)
		{ --i; this.isLeap = true; temp = leapDays(this.year); }
		else
		{ temp = monthDays(this.year, i); }
	   
		//解除閏月
		if(this.isLeap==true && i==(leap+1)) this.isLeap = false
	   
		offset -= temp
		if(this.isLeap == false) this.monCyl ++
	}
 
	if(offset==0 && leap>0 && i==leap+1)
	if(this.isLeap)
	{ this.isLeap = false; }
	else
	{ this.isLeap = true; --i; --this.monCyl;}
	 
	if(offset<0){ offset += temp; --i; --this.monCyl; }
	 
	this.month = i
	this.day = offset + 1
}

var numString=["十","一","二","三","四","五","六","七","八","九","十"];
var lMString=["正","二","三","四","五","六","七","八","九","十","冬","臘"];

function getLunarDateStr(date){
	date = date || new Date();
	var tY = date.getFullYear();
	var tM = date.getMonth();
	var tD = date.getDate();
	var l = new Lunar(date);
	var lM = l.month.toFixed(0);
	var pre = (l.isLeap) ? '閏' : '';
	var mStr = pre + lMString[lM-1] + '月';
	var lD = Math.ceil(l.day) - 1;
	pre = (lD <= 10) ? '初' : ((lD <= 19) ? '十' : ((lD <= 29) ? '廿' : '三'));			    
	var dStr = pre + numString[lD % 10];
	return mStr + dStr;
}

function getDateStr(date) {
	var today = date || new Date();
	var year = today.getYear();
	var month = today.getMonth() + 1;
	month = (month < 10 ? '0' : '') + month;
	var date = today.getDate();
	date = (date < 10 ? '0' : '') + date;
	var day = today.getDay();
	return year+'年'+month+'月'+date+'日 周'+["日","一","二","三","四","五","六"][day];
}

function showTimer(date) {
	date = new Date(date) || new Date();
	var h = date.getHours();
	h = (h < 10 ? '0' : '') + h;
	var i = date.getMinutes();
	i = (i < 10 ? '0' : '') + i;
	var s = date.getSeconds();
	s = (s < 10 ? '0' : '') + s;
	$('#hour').html(h+':'+i);
	$('#sec').html(s);
}
