/*
 * 2003. 2. 24.
 * ¹ÚÁ¤¿í thesky01@pharos.co.kr
 */


// À±³â¿©ºÎ
function isLeapYear(nYear) {
	var ret = false;
	
	if (nYear % 4 == 0) {
		if (nYear % 400 == 0 || nYear % 100 != 0) {
			ret = true;
		}
	}
	
	return ret;
}

// ÇØ´ç´Þ ³¯Â¥¼ö(1¿ùÀº 1)
function getLastMonthDay(nYear, nMonth) {
	var ret = 0;
	var arrDay = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
	
	if (isLeapYear(nYear)) {
		if (nMonth == 2) {
			ret = arrDay[nMonth - 1] + 1;
		} else {
			ret = arrDay[nMonth - 1];
		}
	} else {
		ret = arrDay[nMonth - 1];
	}
	
	return ret;
}
 
// ³¯Â¥ <select></select> Å×±× Ã¤¿ì±â
// nMonth ÆÄ¶ó¹ÌÅÍ´Â 1¿ùÀÏ ¶§ 1
function initDay(objDay, nYear, nMonth) {
	var nDay = getLastMonthDay(nYear, nMonth);
	
	objDay.options[objDay.options.length] = new Option('--', '');
	
	for (var i = 0; i < nDay; i++) {
		objDay.options[objDay.options.length] = new Option(i + 1, i + 1);
	}
}

// ¿ù <select></select> Å×±× Ã¤¿ì±â
// 1¿ù °ªÀº 1·Î ¼³Á¤ µÊ
function initMonth(objMon) {
	objMon.options[objMon.options.length] = new Option('--', '');
		
	for (var i = 0; i < 12; i++) {
		objMon.options[objMon.options.length] = new Option(i + 1, i + 1);
	}
}

//³¯Â¥ <select></select> Å×±× Áö¿ì±â
function clearDay(objDay) {
	while (objDay.options.length != 0) {
				objDay.options[objDay.options.length - 1] = null;
	}
}

// ¹®ÀÚ¿­ ¾ÕµÚ °ø¹é Á¦°Å
function trim(str) {
	var nBgn = 0;
	var nEnd = str.length - 1;
	var ch = '';
	
	while (true) {
		ch = str.charAt(nBgn);
		
		if (ch != ' ' && ch != '\t' && ch != '\n' && ch != '\r') {
			break;
		}
		
		nBgn++;
	}
	
	while (nEnd > nBgn) {
		ch = str.charAt(nEnd);
		
		if (ch != ' ' && ch != '\t' && ch != '\n' && ch != '\r') {
			break;
		}
		
		nEnd--;
	}
	
	return str.substring(nBgn, nEnd + 1);
}

function checkDate(varDate) {
    var strDate = '' + varDate;

    // ±æÀÌ Ã¼Å©
    if(strDate.length != 10)
        return false;  
  
	if(strDate.substr(4,1) != '-' || strDate.substr(7,1) != '-') {
		return false;
	}	

    // ¼ýÀÚÀÎÁö Ã¼Å© 
    if(isNumber(strDate.substr(0,4)) == false || isNumber(strDate.substr(5,2)) == false || isNumber(strDate.substr(8,2)) == false)
        return false;

    // ³âµµ¸¦ ¹ÝÈ¯
    var strYear = strDate.substr(0, 4);
   
    // ¿ùÀ» ¹ÝÈ¯ÇÏ¿© ¹üÀ§¸¦ Ã¼Å© 
    var strMonth = strDate.substr(5, 2);
    if(strMonth.substr(0, 1) == '0')
        strMonth = strMonth.substr(1, 1);  
    
    var intMonth = parseInt(strMonth);
    if(intMonth<1 || intMonth>12) 
        return false; 

    // ÀÏÀ» ¹ÝÈ¯ 
    var strDay = strDate.substr(8, 2);
    if(strDay.substr(0, 1) == '0')
        strDay = strDay.substr(1, 1);

    var intDay = parseInt(strDay); 
    switch(intMonth) {
        // ÀÏÀÌ 31ÀÏ±îÁö ÀÖ´Â ´Þ
        case 1: case 3: case 5: case 7: case 8: case 10: case 12:   
        {
            if(intDay<1 || intDay>31) 
                return false;                
            break;
        }

        // 2¿ù´ÞÀÏ °æ¿ì
        case 2:
        {
             // À±³âÀÌ¸é
             if(isLeapYear(strYear)) 
             {
                 if(intDay<1 || intDay>29) 
                     return false;  
             }       
             // À±³âÀÌ ¾Æ´Ï¸é
             else
             {
                 if(intDay<1 || intDay>28) 
                     return false;  
             } 
             break;
        }
      
        // ÀÏÀÌ 30ÀÏÀÎ ´Þ
        default:
        {
            if(intDay<1 || intDay>30) 
                return false;                
            break;
        }
    }
        
    return true;
}

// ¼ýÀÚÀÎ°¡ °Ë»ç
function isNumber(num) {
	var strNum = num + '';
	var nCode;
	
	if (strNum.length == 0)
		return false;

	for (var i = 0; i < strNum.length; i++) {
		nCode = strNum.charCodeAt(i);
		
		if (nCode < 48 || nCode > 57)
			return false;
	}
	
	return true;
}

// ¿Ã¹Ù¸¥ È®ÀåÀÚ¸¦ °¡Áø ÆÄÀÏÀÎ°¡ Ã¼Å©
// strExt ´Â ' || ' ·Î or ¿¬»êÀ» ¼öÇà
function chkFileByExt(strFile, strExt) {
	var chk = false;
	var file_ext = '';
	var nIndex = strFile.lastIndexOf('.');
	var arrExt = strExt.split('||');
	
	for (var i = 0; i < arrExt.length; i++)
		arrExt[i] = trim(arrExt[i].toLowerCase());
	
	if (nIndex != -1)
		file_ext = (strFile.substr(nIndex + 1)).toLowerCase();
	else
		return false;
	
	for (i = 0; i < arrExt.length; i++)
		if (file_ext == arrExt[i]) {
			chk = true;
			break;
		}
	
	return chk;
}

// ¹Ù¸¥ ¼ýÀÚÇüÀÎ°¡ °Ë»ç(Á¤¼ö, ½Ç¼ö °Ë»ç)
// text °´Ã¼¸¦ ÀÎÀÚ·Î ³Ö¾îÁØ´Ù.
function chkFloat(objTxt) {
	return !isNaN(objTxt.value);
}
