﻿Sys.Application.add_load(PageLoaded);

var daysInSelectedMonth;

function PageLoaded() 
{
    var Day = new Date(year,month-1,day);

    if($get('dt_'))
        $get('dt_').innerHTML = Day.localeFormat('D');
    setActiveDate();
    daysInSelectedMonth = numberOfDaysInMonth(month,year);
    getDaysInMonth();

    for (var i = 1; i < 5; i++) {
        var aYear = $get('y' + i).getElementsByTagName('a')[0];
        aYear.innerHTML = currYear - (5 - i);
        aYear.className = aYear.innerHTML == year ? 'tekuci' : 'sivi';
    }
}

function calendarSlide()
{
    var slideContent = $get('slide-content');
    var bounds = Sys.UI.DomElement.getBounds(slideContent);
    var cHeight = slideContent.offsetHeight;
    var height = 165;
    
    switch(cHeight)
        {
            case 0 :
                animCart = new AjaxControlToolkit.Animation.ResizeAnimation(slideContent, 0.1, 15, bounds.width, height, 'px');
                break;  
          
            default :
                animCart = new AjaxControlToolkit.Animation.ResizeAnimation(slideContent, 0.1, 15, bounds.width, 0, 'px');
                break;
        }
    animCart.play();
}

function getDaysInMonth()
{
    var daysArray = new Array();
    var actualDate = new Date(year,month-1,day);
    var startDateDayInWeek = new Date(year,month-1,1).getDay();
    var thisMonthNumberOfDays = numberOfDaysInMonth(month,year);
    var lastMonthNumberOfDays = numberOfDaysInMonth(month-1,year);
    var thisMonthStartPosition = startDateDayInWeek > 2 ? startDateDayInWeek : startDateDayInWeek + 7;
    var nextMonthStartPosition = thisMonthStartPosition + thisMonthNumberOfDays;
    var lastMonthStartDay = lastMonthNumberOfDays - thisMonthStartPosition + 2;

    for(var j = 1 ; j < 43 ; j++)
    {
        if(j < thisMonthStartPosition)
        {
            var lastMonthStartDate = new Date(year, month-2, lastMonthStartDay + j - 1);
            daysArray[lastMonthStartDate.getFullYear().toString() + '.' + lastMonthStartDate.getMonth().toString() + '.' + lastMonthStartDate.getDate().toString()] = false;
        }

        else if(j > nextMonthStartPosition)
        {
            var nextMonthStartDate = new Date(year, month - 1, j - nextMonthStartPosition + 1);
            daysArray[nextMonthStartDate.getFullYear().toString() + '.' + nextMonthStartDate.getMonth().toString() + '.' + nextMonthStartDate.getDate().toString()] = false;
        }

        else
        {
            var thisMonthStartDate = new Date(year, month-1, j - thisMonthStartPosition + 1);
            daysArray[thisMonthStartDate.getFullYear().toString() + '.' + (thisMonthStartDate.getMonth() + 1).toString() + '.' + thisMonthStartDate.getDate().toString()] = true;
        }
    }

    var x = 1;
    for(var date in daysArray)
    {
        //Clear cell
        $get('cal'+x).innerHTML = '';
        
        var currDate = new Date();
        var dt = new Date(parseInt(date.split('.')[0]), parseInt(date.split('.')[1])-1, parseInt(date.split('.')[2]));
        
        if(daysArray[date] != false && currDate >= dt)
            {
                var lnk = document.createElement("a");
                lnk.className = date.split('.')[1] != month ? 'sivi' : '';
                lnk.href = httpRoot + 'Content/Group.aspx?Group=' + groupId + '&d=' + date.split('.')[0] + '-' + date.split('.')[1] + '-' + date.split('.')[2];
                lnk.innerHTML = date.split('.')[2];
                $get('cal'+x).appendChild(lnk);
            }
        else
            {
                var lnk = document.createElement("a");
                lnk.innerHTML = date.split('.')[2];
                lnk.href = "javascript:void(0);";
                lnk.className = date.split('.')[1] != month ? 'sivi' : 'sivi';
                $get('cal'+x).appendChild(lnk);
            }
        x++;
    }

    setActiveDate();
}

function setMonth(m)
{
    month = m;
    
    for(var i = 1 ; i < 13 ; i++)
    {
        $get('m'+i).getElementsByTagName('a')[0].className = i == month ? 'tekuci' : 'sivi';
    }
    
    //TO DO: generate days schema for given month
    daysInSelectedMonth = numberOfDaysInMonth(m,year);
    getDaysInMonth();
}

function setYear(yearObj)
{
    year = yearObj.innerHTML;
    for(var i = 1 ; i < 5 ; i++)
    {
        $get('y'+i).getElementsByTagName('a')[0].className = $get('y'+i).getElementsByTagName('a')[0].innerHTML == year ? 'tekuci' : 'sivi';
    }
    
    //TO DO: generate days schema for given month
    daysInSelectedMonth = numberOfDaysInMonth(month,year);
    getDaysInMonth();
}

function setActiveDate()
{
    for(var i = 1 ; i < 13 ; i++)
    {
        $get('m'+i).getElementsByTagName('a')[0].className = i == month ? 'tekuci' : 'sivi';
    }
    
    for(var j = 1 ; j < 5 ; j++)
    {
        $get('y'+j).getElementsByTagName('a')[0].className = $get('y'+j).getElementsByTagName('a')[0].innerHTML == year ? 'tekuci' : 'sivi';
    }
    
    for(var k = 1 ; k < 43 ; k++)
    {
        var s = $get('cal'+k).getElementsByTagName('a')[0].className;
        $get('cal'+k).getElementsByTagName('a')[0].className = ($get('cal'+k).getElementsByTagName('a')[0].innerHTML == day && k > 4 && k < 37) ? 'tekuci' : s;
    }
}

function numberOfDaysInMonth(month,year) {
    if(month < 0)
        month = 13 + month;
    if(month == 0)
        month = 12;
    var m = [31,28,31,30,31,30,31,31,30,31,30,31];
    if (month != 2) return m[month - 1];
    if (year%4 != 0) return m[1];
    if (year%100 == 0 && year%400 != 0) return m[1];
    return m[1] + 1;
}

if (typeof(Sys) !== "undefined") Sys.Application.notifyScriptLoaded();
