﻿/*********************************************************************************************************/
/******************************************** Date functions *********************************************/
/*********************************************************************************************************/

var firstDay;
var firstMonth;
var firstYear;

// fill day dropdown list based on year and month values.
function BindDays(year, month, id)
{
	var form = document.forms[0];
	
//	var dd_id = document.getElementById('ctl00_MainContent_BeginDayDropDownList');
//	var mm_id = document.getElementById('ctl00_MainContent_BeginMonthDropDownList');
//	var yy_id = document.getElementById('ctl00_MainContent_BeginYearDropDownList');
	
	// get id's of required elements
	var dd_id = document.getElementById(GetId(id,'d'));
	var mm_id = document.getElementById(GetId(id,'m'));
	var yy_id = document.getElementById(GetId(id,'y'));

	var i;

	var index = dd_id.selectedIndex+1;

	dd_id.options.length = 0;
	
	month = Math.abs(mm_id.options[month].text);
	year = yy_id.options[year].text;

	switch (month)
	{
		case 1:
		case 3:
		case 5:
		case 7:
		case 8:
		case 10:
		case 12:
			//dd_id.options[0] = new Option('----', i);
			for (i = 1; i <= 31; i++)
			{
				if (i == index)
					dd_id.options[i-1] = new Option(i, i, false, true);
				else
					dd_id.options[i-1] = new Option(i, i);
			}
			break;
		case 2:
			if (CheckLeap(year))
			{
				//dd_id.options[0] = new Option('----', i);
				for (i = 1; i <= 29; i++)
				{
					if (i == index)
						dd_id.options[i-1] = new Option(i, i, false, true);
					else
						dd_id.options[i-1] = new Option(i, i);
				}
			}
			else
			{
				//dd_id.options[0] = new Option('----', i);
				for (i = 1; i <= 28; i++)
				{
					if (i == index)
						dd_id.options[i-1] = new Option(i, i, false, true);
					else
						dd_id.options[i-1] = new Option(i, i);
				}
			}
			break;
		case 4:
		case 6:
		case 9:
		case 11:
			//dd_id.options[0] = new Option('----', i);
			for (i = 1; i <= 30; i++)
			{
				if (i == index)
					dd_id.options[i-1] = new Option(i, i, false, true);
				else
					dd_id.options[i-1] = new Option(i, i);
			}
			break;
	}
}

function change_day(id)
{	
	var mm_id = document.getElementById(GetId(id,'m'));
	var yy_id = document.getElementById(GetId(id,'y'));
	
	BindDays(yy_id.selectedIndex, mm_id.selectedIndex, id);
	RemoveBeforeFirstOptions(id);
}

function CheckLeap(year)
{
if ((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0))
	return true;
	else return false;
}

function GetId(id, req)
{
    var ret = id;
    
    switch (req)
    {
        case 'd':
            ret = ret.replace('month','day');
            ret = ret.replace('Month','Day');
            ret = ret.replace('year','day');
            ret = ret.replace('Year','Day');
            break;
        
        case 'm':
            ret = ret.replace('day','month');
            ret = ret.replace('Day','Month');
            ret = ret.replace('year','month');
            ret = ret.replace('Year','Month');
            break;
            
        case 'y':
            ret = ret.replace('day','year');
            ret = ret.replace('Day','Year');
            ret = ret.replace('month','year');
            ret = ret.replace('Month','Year');
            break;
    }
    
    return ret;
}


function GetFirstDay()
{
    for (var k=0; k<document.forms[0].length; k++)
    {
        var elmId = document.forms[0].elements[k].id;
        if (elmId.indexOf('hdnFirstYear') > -1)
        {
            firstYear = document.getElementById(elmId).value;
            firstMonth = document.getElementById(elmId.replace('Year','Month')).value;
            firstDay = document.getElementById(elmId.replace('Year','Day')).value;
        }
    }
}

function RemoveBeforeFirstOptions(id)
{
    var dd_id = document.getElementById(GetId(id,'d'));
	var mm_id = document.getElementById(GetId(id,'m'));
	var yy_id = document.getElementById(GetId(id,'y'));
	
	if (yy_id.selectedIndex == 0)
	{
	    if (mm_id.selectedIndex <= (firstMonth-1))
        {
            for (var i=0; i<(firstDay-1); i++)
            {
                dd_id.remove(i);
            }
        }
	    
	    for (var i=0; i<(firstMonth-1); i++)
	    {
	        mm_id.remove(i);
	    }	    
	}
}

/*********************************************************************************************************/
/******************************************** End of date functions **************************************/
/*********************************************************************************************************/



/*********************************************************************************************************/
/********************************************* Event functions *******************************************/
/*********************************************************************************************************/

function load()
{
}


//Enables or disables one or two elements based on checkbox check
//first parameter is the element to enable when checking
//second parameter (optional) is the element to disable when checking
function checked_disable_enable(checked, enabled, disabled)
{
	var form = document.forms[0];
	
	if (checked)
	{
	    document.getElementById(enabled).style.visibility = 'visible';
	    if (disabled != null)
	        document.getElementById(disabled).style.visibility = 'hidden';
	}
	else
	{
	    document.getElementById(enabled).style.visibility = 'hidden';
	    if (disabled != null)
	        document.getElementById(disabled).style.visibility = 'visible';
	}
}



/*********************************************************************************************************/
/******************************************* End of event functions **************************************/
/*********************************************************************************************************/




