﻿
function ActivateAuthRegTab( tab )
{
    var auth_link = document.getElementById( 'aAuth' ), reg_link = document.getElementById( 'aReg' ),
        auth_tab = document.getElementById( 'tabAuth' ), reg_tab = document.getElementById( 'tabReg' ),
        auth_cont = document.getElementById( 'tabPageAuth' ), reg_cont = document.getElementById( 'tabPageReg' );
    auth_link.className = tab == 'a' ? 'seltaba' : 'unseltaba';
    reg_link.className = tab == 'a' ? 'unseltaba' : 'seltaba';
    auth_tab.className = tab == 'a' ? 'seltab' : 'unseltab';
    reg_tab.className = tab == 'a' ? 'unseltab' : 'seltab';
    auth_cont.style.display = tab == 'a' ? 'block' : 'none';
    reg_cont.style.display = tab == 'a' ? 'none' : 'block';
}

function GetDayOfWeek( y, m, d )
{
    if( m < 3 ) --y;
    return (Math.floor(2.6*(m<3?m+10:m-2)-0.1999)+d+(y%100)+Math.floor((y%100)/4)+Math.floor(y/400)-2*Math.floor(y/100)+776)%7;
}

function GetDaysInMonth( y, m )
{
    var d = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ];
    if( !(y%4) ^ !(y%100) ^ !(y%400) ) d[1]++;
    return d[m];
}

function PrintCalendarMonth()
{
    var month = document.getElementById( 'calendarMonth' ).selectedIndex;
    var table = document.getElementById( 'calendarTable' );
    var now = new Date();
    var now_y = now.getFullYear(), now_m = now.getMonth(), now_d = now.getDate();
    var dow = GetDayOfWeek( now_y, month+1, 1 );
    var days = GetDaysInMonth( now_y, month );
    var sel_month = now_m, sel_day = now_d;         // day what user select
    var s = '<table>';             // future HTML of table
    // print names of days of week
    s += '<tr>';
    var dwnames = [ "ПН", "ВТ", "СР", "ЧТ", "ПТ", "СБ", "ВС" ];
    for( var i in dwnames )
        s += '<th>' + dwnames[i] + '</th>';
    s += '</tr>';
    // print empty cells before 1st day of this month
    s += '<tr>';
    for( var d = 0; d < dow; ++d )
        s += '<td>&nbsp;</td>';
    // print current month
    // days before now() are printed as links, after - simple text
    for( var d = 1; d <= days; ++d, dow = ( dow == 6 ? 0 : dow+1 ) )
    {
        if( dow == 0 ) s += ( d == 1 ? '' : '</tr>' ) + '<tr>';
        var cur_sel = month == sel_month && d == sel_day;
        s += '<td' + ( cur_sel ? ' class="selected">' : '>' );
        if( month < now_m || ( month == now_m && d < now_d ) && !cur_sel )
            s += "<a href='#'>" + d + "</a>";           // insert a link to date here
        else
            s += '' + d;
        s += '</td>';
    } 
    // print empty cells after month
    for( dow = !dow ? 7 : dow; dow < 7; ++dow )
        s += '<td>&nbsp;</td>';
    // calendar is built
    s += '</tr></table>';
    table.innerHTML = s;
}

function PrintCalendar( div )
{
    var s = '';
    s += '<div class="round"><div class="r8"></div><div class="r6"></div><div class="r4"></div><div class="r3"></div><div class="r2"></div><div class="r2"></div><div class="r1"></div><div class="r1"></div></div>';
    var months = [ "Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь" ];
    s += '<div class="all"><div class="selmonth"><select id="calendarMonth" onchange="PrintCalendarMonth();">';
    var now_m = (new Date()).getMonth();
    for( var i in months )
        s += "<option value='" + i + "'" + ( i==now_m ? 'selected' : '' ) + ">" + months[i] + "</option>";
    s += '</select></div>';
    s += '<div class="table" id="calendarTable"></div>'
    s += '</div><div class="round"><div class="r1"></div><div class="r1"></div><div class="r2"></div><div class="r2"></div><div class="r3"></div><div class="r4"></div><div class="r6"></div><div class="r8"></div></div>';
    div.innerHTML = s;
    PrintCalendarMonth();
}

function OnLoad()
{
    var div_cal = document.getElementById( 'divCalendar' );
    if( div_cal ) PrintCalendar( div_cal );
}