/** 
 * Java script file for datepanel component
 *
 * @version 2.0.1
 * @author Eugene A. Kalosha <aristarch@zfort.net>
 */

    function getDaysForMonth(monthNum, yearNum)
    {
        switch (monthNum) {
        	case "1":
        	case "3":
        	case "5":
        	case "7":
        	case "8":
        	case "10":
        	case "12":
        		return 31;
        		break;
            case "2":
        		return (yearNum % 4 != 0) ? 28 : ((yearNum % 2000 == 0) ? 29 : ((yearNum % 400 != 0) ? 29 : 28));
        		return 28;
        		break;
        	case "4":
        	case "6":
        	case "9":
        	case "11":
        		return 30;
        		break;
        		
        	default:
        	   return 0;
        		break;
        }
        
    }
    
    function onMonthYearChanged(objectName)
    {
        currentDay = document.getElementById(objectName + "_day").options[document.getElementById(objectName + "_day").selectedIndex].value;
        currentMonth = document.getElementById(objectName + "_month").options[document.getElementById(objectName + "_month").selectedIndex].value;
        currentYear = document.getElementById(objectName + "_year").options[document.getElementById(objectName + "_year").selectedIndex].value;
        
        daysInMonth = getDaysForMonth(currentMonth, currentYear);
        
        document.getElementById(objectName + "_day").innerHTML = "";
        for (i = 1; i <= daysInMonth; i++) {
            var obj = document.createElement("OPTION");
    		obj.value = i;
    		obj.text = i;
    		
    		document.getElementById(objectName + "_day").options.add(obj);
        }
        
        if (currentDay > daysInMonth) {
            document.getElementById(objectName + "_day").selectedIndex = 0;
        } else {
            document.getElementById(objectName + "_day").selectedIndex = currentDay - 1;
        }
    }