	var dateDB = new Array( 
	  /*1881*/	 1, 2, 1, 2, 1, 2, 2, 3, 2, 2, 1, 2, 1,
                 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 0,
                 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 0,
                 2, 1, 1, 2, 1, 3, 2, 1, 2, 2, 1, 2, 2,
                 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 0,
                 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 0,
                 2, 2, 1, 2, 3, 2, 1, 1, 2, 1, 2, 1, 2,
                 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 0,
                 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 0,
                 1, 2, 3, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2,

	  /*1891*/   1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 0,
                 1, 1, 2, 1, 1, 2, 3, 2, 2, 1, 2, 2, 2,
                 1, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 0,
                 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 0,
                 2, 1, 2, 1, 2, 3, 1, 2, 1, 2, 1, 2, 1,
                 2, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 0,
                 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 0,
                 2, 1, 2, 3, 2, 2, 1, 2, 1, 2, 1, 2, 1,
                 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 0,
                 1, 2, 1, 1, 2, 1, 2, 2, 3, 2, 2, 1, 2,

      /*1901*/   1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 0,
                 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 0,
                 1, 2, 1, 2, 1, 3, 2, 1, 1, 2, 2, 1, 2,
                 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 0,
                 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 1, 2, 0,
                 1, 2, 2, 1, 4, 1, 2, 1, 2, 1, 2, 1, 2,
                 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 0,
                 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2, 0,
                 1, 2, 3, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2,
                 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 0,

      /*1911*/   2, 1, 2, 1, 1, 2, 3, 1, 2, 2, 1, 2, 2,
                 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 0,
                 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 0,
                 2, 2, 1, 2, 2, 3, 1, 2, 1, 2, 1, 1, 2,
                 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 0,
                 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 0,
                 2, 1, 3, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1,
                 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2, 0,
                 1, 2, 1, 1, 2, 1, 2, 3, 2, 2, 1, 2, 2,
                 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 0,

      /*1921*/   2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 0,
                 2, 1, 2, 2, 1, 3, 2, 1, 1, 2, 1, 2, 2,
                 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 0,
                 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 1, 0,
                 2, 1, 2, 2, 3, 2, 1, 2, 2, 1, 2, 1, 2,
                 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 0,
                 2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 0,
                 1, 2, 3, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2,
                 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 0,
                 1, 2, 2, 1, 1, 2, 3, 1, 2, 1, 2, 2, 1,

      /*1931*/   2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 0,
                 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 0,
                 1, 2, 2, 1, 2, 4, 1, 2, 1, 2, 1, 1, 2,
                 1, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 2, 0,
                 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 0,
                 2, 1, 1, 4, 1, 2, 1, 2, 1, 2, 2, 2, 1,
                 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 0,
                 2, 2, 1, 1, 2, 1, 1, 4, 1, 2, 2, 1, 2,
                 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 2, 0,
                 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 0,

      /*1941*/   2, 2, 1, 2, 2, 1, 4, 1, 1, 2, 1, 2, 1,
                 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 0,
                 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2, 0,
                 1, 1, 2, 1, 4, 1, 2, 1, 2, 2, 1, 2, 2,
                 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 0,
                 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 0,
                 2, 2, 3, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2,
                 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 0,
                 2, 2, 1, 2, 1, 2, 1, 3, 2, 1, 2, 1, 2,
                 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 0,

      /*1951*/   2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 0,
                 1, 2, 1, 2, 1, 4, 2, 1, 2, 1, 2, 1, 2,
                 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 2, 2, 0,
                 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 0,
                 2, 1, 1, 4, 1, 1, 2, 1, 2, 1, 2, 2, 2,
                 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 0,
                 2, 1, 2, 1, 2, 1, 1, 2, 3, 2, 1, 2, 2,
                 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 0,
                 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 0,
                 2, 1, 2, 1, 2, 2, 3, 2, 1, 2, 1, 2, 1,

      /*1961*/   2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 0,
                 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 0,
                 2, 1, 2, 1, 3, 2, 1, 2, 1, 2, 2, 2, 1,
                 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 0,
                 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 0,
                 2, 2, 2, 3, 2, 1, 1, 2, 1, 1, 2, 2, 1,
                 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 1, 2, 0,
                 1, 2, 2, 1, 2, 1, 2, 3, 2, 1, 2, 1, 2,
                 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 0,
                 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2, 0,

      /*1971*/   1, 2, 1, 1, 2, 3, 2, 1, 2, 2, 2, 1, 2,
                 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 0,
                 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 1, 0,
                 2, 2, 1, 2, 3, 1, 2, 1, 1, 2, 2, 1, 2,
                 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 0,
                 2, 2, 1, 2, 1, 2, 1, 2, 3, 2, 1, 1, 2,
                 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 0,
                 2, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 0,
                 2, 1, 1, 2, 1, 2, 4, 1, 2, 2, 1, 2, 1,
                 2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 0,

      /*1981*/   1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 0,
                 2, 1, 2, 1, 3, 2, 1, 1, 2, 2, 1, 2, 2,
                 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 0,
                 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 3, 2, 2,
                 1, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 0,
                 1, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 1, 0,
                 2, 1, 2, 2, 1, 2, 3, 2, 2, 1, 2, 1, 2,
                 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 0,
                 2, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 0,
                 1, 2, 1, 1, 2, 3, 1, 2, 1, 2, 2, 2, 2,

      /*1991*/   1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 0,
                 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 0,
                 1, 2, 2, 3, 2, 1, 2, 1, 1, 2, 1, 2, 1,
                 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 0,
                 1, 2, 2, 1, 2, 2, 1, 2, 3, 2, 1, 1, 2,
                 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2, 0,
                 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 0,
                 2, 1, 1, 2, 1, 3, 2, 2, 1, 2, 2, 2, 1,
                 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 0,
                 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 0,

      /*2001*/   2, 2, 2, 1, 3, 2, 1, 1, 2, 1, 2, 1, 2,
                 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 0,
                 2, 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 0,
                 1, 2, 3, 2, 2, 1, 2, 1, 2, 2, 1, 1, 2,
                 1, 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, 0,
                 2, 1, 2, 1, 2, 1, 2, 3, 2, 2, 1, 2, 2,
                 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 0,
                 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 0,
                 2, 2, 1, 1, 2, 3, 1, 2, 1, 2, 1, 2, 2,
                 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 0,
				 2, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 1, 0, 

      /*2011*/   2, 1, 2, 4, 2, 1, 2, 1, 1, 2, 1, 2, 1, 
                 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 0, 
                 1, 2, 1, 2, 1, 2, 1, 2, 2, 3, 2, 1, 2, 
                 1, 2, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 0, 
                 1, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 0, 
                 2, 1, 1, 2, 1, 3, 2, 1, 2, 1, 2, 2, 2, 
                 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 0, 
                 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 0, 
                 2, 1, 2, 2, 3, 2, 1, 1, 2, 1, 2, 1, 2, 
                 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 0, 

  	  /*2021*/	 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 0, 
                 1, 2, 3, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 
                 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 0, 
                 2, 1, 2, 1, 1, 2, 3, 2, 1, 2, 2, 2, 1, 
                 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 0, 
                 1, 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 0, 
                 1, 2, 2, 1, 2, 3, 1, 2, 1, 1, 2, 2, 1, 
                 2, 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 0, 
                 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 0, 
                 2, 1, 2, 3, 2, 1, 2, 2, 1, 2, 1, 2, 1, 

  	  /*2031*/	 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2, 0, 
                 1, 2, 1, 1, 2, 1, 2, 3, 2, 2, 2, 1, 2, 
                 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 0, 
                 2, 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 0, 
                 2, 2, 1, 2, 1, 1, 4, 1, 1, 2, 1, 2, 2, 
                 2, 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 0, 
                 2, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 0, 
                 2, 2, 1, 2, 2, 3, 2, 1, 2, 1, 2, 1, 1, 
                 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 0, 
                 2, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2, 0, 

  	  /*2041*/	 1, 2, 3, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2, 
                 1, 2, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 0, 
                 2, 1, 2, 1, 1, 2, 1, 3, 2, 1, 2, 2, 2, 
                 2, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 2, 0, 
                 2, 1, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 0, 
                 2, 1, 2, 2, 1, 4, 1, 2, 1, 1, 2, 1, 2, 
                 1, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 1, 0, 
                 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 0, 
                 2, 1, 1, 4, 1, 2, 1, 2, 2, 1, 2, 2, 1 );

	var m = new Array( 31, 0, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 );

	function FortuneSzLtoS(){
	}

	// Functions
	function ToLinear(row, col)
	{
		
			var linear = row * 13 + col; // Each year has 13 data.
			return linear;

	}

	function CheckSolarLeap(yearSolar)
	{
		
			var yearLeap = yearSolar%400==0 || yearSolar%100!=0 && yearSolar%4==0;
			var retval = (yearLeap) ? true : false;
			return retval;

	}

	function CheckValidSolar(yearSolar, monthSolar, daySolar)
	{
		
			var yearLeap = CheckSolarLeap(yearSolar);
			var feb = (yearLeap) ? 29 : 28;
			var year = new Array( 0, 31, feb, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

			var wrong = yearSolar <= 1881 || yearSolar >= 2050 ||
					 monthSolar <= 0 || monthSolar >= 13 ||
					 daySolar <= 0 || daySolar > year[monthSolar];
			if (wrong) return false;
			else return true;

	}

	function CheckValidLunar(yearLunar,monthLunar, dayLunar)
	{
		
			var wrong = yearLunar < 1881 || yearLunar > 2050 ||
					 monthLunar <= 0 || monthLunar >= 13 ||
					 dayLunar <= 0 || dayLunar > 30; // À½·ÂÀº ÀÛÀº´ÞÀÌ 29ÀÏ, Å«´ÞÀÌ 30ÀÏÀÌ´Ù.
			if (wrong) return false;
			else return true;

	}

	function ToLunar(ToLunar)
	{
		
			var yearSolar = ToLunar[0];
			var monthSolar = ToLunar[1];
			var daySolar = ToLunar[2];
			var dt = new Array();
			var LeapYear = 0;

			//var result = CheckValidSolar(yearSolar, monthSolar, daySolar);
			//if (!result) { return 0; } // any invalid data offered, just return false

		   var td = 0; // var
		   var td1 = 0;
		   var k11 = 0;
		   var td2 = 0;
		   var td0 = 0;
		   var jcount = 0;
			var m1 = 0;
			var m2 = 0;
			var i = 0;
			var j = 0; // All of these are integers.

			m1 = yearSolar - 1881;
			if (dateDB[ToLinear(m1, 12)] == 0) LeapYear = 0; // À±´Þ À¯¹«: 0ÀÌ¸é ±× ÇØ¿¡´Â ¾øÀ½
			else if (dateDB[ToLinear(m1, monthSolar)] > 2) LeapYear = 1;
			else LeapYear = 0;

			for (i=0; i<=168; i++) {
				dt[i] = 0;
				for (j=1; j<=12; j++) {
					switch (dateDB[ToLinear(i, j-1)]) {
						case 1:
						case 3:
							dt[i] += 29;
							break;
						case 2:
						case 4:
							dt[i] += 30;
							break;
					}
				}

				switch (dateDB[ToLinear(i, 12)]) {
					case 0:
						break;
					case 1:
					case 3:
						dt[i] += 29;
						break;
					case 2:
					case 4:
						dt[i] += 30;
						break;
				}
			}

			td1 = 686686; // 1880 * 365 + intval(1880 / 4) - intval(1880 / 100) + intval(1880 / 400) + 30;
			k11 = yearSolar - 1;
			td2 = k11 * 365 + parseInt(k11 / 4) -  parseInt(k11 / 100) + parseInt(k11 / 400);

			m[1] = CheckSolarLeap(yearSolar) ? 29 : 28;

			for (i=0; i<monthSolar-1; i++) {
				td2 += m[i];
			}
			td2 += daySolar;
			td = td2 - td1 + 1;
			td0 = dt[0];

			for (i=0; i<=168; i++) {
				if (td <= td0) break;
				td0 += dt[i+1];
			}

			var yearLunar = i + 1881;
			td0 = td0 - dt[i];
			td -= td0;
			
			jcount = (dateDB[ToLinear(i, 12)] == 0) ? 11 : 12;
			m2 = 0;

			for (j=0; j<=jcount; j++) {
				if (dateDB[ToLinear(i, j)] <= 2) {
					m2++;
					m1 = dateDB[ToLinear(i, j)] + 28;
					LeapYear = 0;
				} else {
					m1 = dateDB[ToLinear(i, j)] + 26;
					LeapYear = 1;
				}
				if (td <= m1) break;
				td -= m1;
			}
			
			var monthLunar = m2;
			var dayLunar = td;

			var ret = new Array(yearLunar, monthLunar, dayLunar, LeapYear);
			return ret;

	}

	function ToSolar(param)
	{
		
			var yearLunar = param[0];
			var monthLunar = param[1];
			var dayLunar = param[2];
			var bLeapYes = param[3];

			var usr_bLeapYes = bLeapYes;

			var yearSolar = 0;
			var monthSolar = 0;
			var daySolar = 0;

		   var td = 0; // var
		   var td1 = 0;
		   var k11 = 0;
		   var td2 = 0;
		   var td0 = 0;
		   var n2 = 0;
			var m1 = 0;
			var m2 = 0;
			var bLeap_Month = 0;
			var i = 0;
			var j = 0; // All of these are integers.

			m1 = -1;
			td = 0;

			//var result = CheckValidLunar(yearLunar, monthLunar, dayLunar);
			//if (!result) { return result; } // any invalid data offered, just return false

			// filtering the wrong Lunar month and day values
			monthLunar %= 13;
			dayLunar %= 32;

			if (yearLunar != 1881) {
				m1 = yearLunar - 1882;
				for (i=0; i<=m1; i++) {
				  for (j=0; j<13; j++) td += dateDB[ToLinear(i, j)];
				  td += (dateDB[ToLinear(i,12)] == 0) ? 336 : 362;
				}
			}
			m1++;
			// À±³âÀÎÁö Á¡°ËÇÏ¿© bLeapYes¿¡ ¾î¶² °ªÀÌ ÀÖµçÁö overwrite ÇÑ´Ù.
			bLeapYes = (dateDB[ToLinear(m1,12)] != 0 && is_LeapMonth(m1,monthLunar)) ? 1 : 0;
			n2 = monthLunar - 1;
			m2 = -1;

			do {
				m2++;
				if (dateDB[ToLinear(m1, m2)] > 2) {
					bLeap_Month = m2;
					td += 26 + dateDB[ToLinear(m1, m2)];
					n2++;
				} else if (m2 == n2) break; 
					else td += 28 + dateDB[ToLinear(m1, m2)];
			} while (true);
			
			var condition = bLeapYes != 0 && usr_bLeapYes == 1 && m2>bLeap_Month;
			if (condition) td += 28 + dateDB[ToLinear(m1, m2)];
			td += dayLunar + 29;
			m1 = 1880;

			do {
				m1++;
				var leap = CheckSolarLeap(m1);
				m2 = (leap) ? 366 : 365;
				if (td < m2) break;
				td -= m2;
			} while (true);

			yearSolar = m1;
			m[1] = m2 - 337;
			m1 = 0;

			do {
				m1++;
				if (td <= m[m1-1]) break;
				td -= m[m1-1];
			} while (true);

			//print_r(m); echo td.'<br>';
			monthSolar = m1;
			daySolar = parseInt(td);

			if(monthSolar == 1 && daySolar == 0){
				yearSolar--;
				monthSolar = 12;
				daySolar = 31;
			}
			
			var ret = new Array(yearSolar, monthSolar, daySolar);
			return ret;

	}

	function is_LeapMonth(row, monthLunar)
	{
		
			var i;
			for(i = 0; i < 12; i++){
				if(dateDB[ToLinear(row,i)] > 2){
					if(i <= monthLunar) return true;
					else return false;
				}
			}
			return false;

	}

	function isvalid_lunar(param)
	{
		var yearLunar = param[0];
		var monthLunar = param[1];
		var dayLunar = param[2];
		var bLeapYes = param[4];
		
			var wrong = yearLunar < 1881 || yearLunar > 2050 ||
					 monthLunar <= 0 || monthLunar >= 13 ||
					 dayLunar <= 0 || dayLunar > 30; // À½·ÂÀº ÀÛÀº´ÞÀÌ 29ÀÏ, Å«´ÞÀÌ 30ÀÏÀÌ´Ù.
			
			if (wrong) { return false; } // any invalid data offered, just return false

			// filtering the wrong Lunar month and day values
			monthLunar %= 13;
			dayLunar %= 31;
			
			var y1 = 0;
			var m1 = 0;
			var month = 0;
			var i= 0;
			var limitday = 0;
			var flag = 0;

			y1 = yearLunar - 1881;
			m1 = monthLunar - 1;
			
			// ¸¸¾à »ç¿ëÀÚ°¡ À±´Þ·Î Ã¼Å©Çß´Ù¸é ±×´ÞÀÌ À±´ÞÀÎÁö È®ÀÎÇÑ´Ù.
			var condition = bLeapYes == 1 && dateDB[ToLinear(y1, m1+1)] <= 2;
			if(condition) return false;
			
			month = 1;
			for(i = 0; i < 13; i++){
				flag = dateDB[ToLinear(y1, i)];
				if(month == monthLunar && bLeapYes == 0) break;
				if(month == monthLunar && bLeapYes == 1 && flag > 2) break;
				if(dateDB[ToLinear(y1, i+1)]<=2) month++;
			}
			
			switch(flag){
				case 1:
				case 3:
					limitday = 29;
					break;
				case 2:
				case 4:
					limitday = 30;
					break;
				default:
					return false;
			}
			return (limitday < dayLunar || dayLunar < 0) ? false : true;

	}
	
/* test area
var bb = new Array(1973,3,30,0);
var cc = isvalid_lunar(bb);
alert(cc);
*/