var honapok=new Array('January','February','March','April','May','June','July','August','September','October','November','December');
var honapok_hossz=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
var napok=new Array('Mo','Tu','We','Th','Fr','Sa','Su');

var aktido=new Date();
var aktev=aktido.getFullYear();
var aktho=aktido.getMonth();
var aktnap=aktido.getDate();

var origev;
var origho;
var orignap;

var aktora=0;
var aktperc=0;
var target='';
var megnyitva=0;
var vanido=0;
var kezdonap=-1;
var ido_enabled=-1;

function dt_update_honap()
    {
    $('ho').innerHTML=honapok[aktho];
    }

function dt_change_ho_add()
    {
    aktho++;
    if (aktho>11)
        {
        aktho=0;
        dt_change_ev_add();
        }
    dt_update_honap();
    aktnap=0;
    dt_update_napok();
    }

function dt_change_ho_sub()
    {
    aktho--;
    if (aktho<0)
        {
        aktho=11;
        dt_change_ev_sub();
        }
    dt_update_honap();
    aktnap=0;
    dt_update_napok();
    }
    
function dt_update_ev()
    {
    $('ev').innerHTML=aktev;
    }

function dt_change_ev_sub()
    {
    aktev--;
    dt_update_ev();
    aktnap=0;
    dt_update_napok();
    }

function dt_change_ev_add()
    {
    aktev++;
    dt_update_ev();
    aktnap=0;
    dt_update_napok();
    }

function dt_change_ora()
    {
    tmpora=$('dt_ora').value;
    if (isNaN(tmpora)) tmpora=aktora;
    if (tmpora<0) tmpora=aktora;
    if (tmpora>23) tmpora=aktora;
    tmpora=Math.round(tmpora);
    $('dt_ora').value=tmpora;
    aktora=tmpora;
    
    if ($('dt_perc').value=='')
        {
        $('dt_perc').value='00';
        aktperc=0;
        }
    }

function dt_change_perc()
    {
    tmperc=$('dt_perc').value;
    if (isNaN(tmperc)) tmperc=aktperc;
    if (tmperc<0) tmperc=aktperc;
    if (tmperc>60) tmperc=aktperc;
    tmperc=Math.round(tmperc);
    $('dt_perc').value=tmperc;
    aktperc=tmperc;    
    }

function dt_update_napok()
    {
    if ((aktev%4==0 && aktev%100!=0) || aktev%400==0)
        honapok_hossz[1]=29;
    else
        honapok_hossz[1]=28;
    var elso_nap=6;
    
    if (aktev>2000)
        {
        elso_nap=1;
        for (i=2001;i<aktev-1;i++)
            {
            if ((i%4==0 && i%100!=0) || i%400==0) elso_nap+=2;
                else elso_nap++;
            if (elso_nap>7) elso_nap-=7;
            }
        }
    if (aktev<2000)
        {
        elso_nap=5;
        for (i=1999;i>aktev-1;i--)
            {
            if ((i%4==0 && i%100!=0) || i%400==0) elso_nap-=2;
                else elso_nap--;
            if (elso_nap<0) elso_nap+=7;
            }
        }
   
    var napokszama=0;
    for (i=0;i<aktho;i++)
        napokszama+=honapok_hossz[i];
    napokszama++;
    
    nap=(elso_nap+napokszama)%7;
    if (nap==0) nap=7;
    
    kezdonap=nap;
    
    for (i=1;i<43;i++)
        {
        c=$('cella_'+i);
        c.innerHTML='';
        Event.stopObserving(c,'click',dt_nap_select);
        c.onmouseover=null;
        c.onmouseout=null;
        c.onclick=null;
        c.style.cursor='default';
        c.className='';
        }

    for (i=1;i<honapok_hossz[aktho]+1;i++)
        {
        c=$('cella_'+(i+nap-1));
        c.innerHTML=i;
        Event.observe(c,'click',dt_nap_select);
        c.onmouseover=function() { this.addClassName('hover'); }
        c.onmouseout=function() { this.removeClassName('hover'); }
        c.style.cursor='pointer';
        c.addClassName('nap');
        if (orignap==i && aktev==origev && aktho==origho)
            {
            c.addClassName('akt_nap');
            }
        else
            c.removeClassName('akt_nap');
        }
    }

function dt_nap_select(ev)
    {
    elemid=Event.element(ev).id;
    tmp=elemid.split('_');
    var nap=tmp[1]-kezdonap+1;
    var honap=aktho+1;
    
    aktnap=tmp[1]-kezdonap+1;
    
    if (nap<10) nap='0'+nap;
    if (honap<10) honap='0'+honap;
    
    target.value=aktev+'. '+honap+'. '+nap+'.';
    
    if (vanido && $('dt_perc').value!='' && $('dt_perc').value!='')
        {
        if (aktora<10) aktora='0'+(aktora*1);
        if (aktperc<10) aktperc='0'+(aktperc*1);
        target.value+=' - '+aktora+':'+aktperc+':00';
        }

    dt_close();
    }

function dt_close()
    {
    $('calendarlink').style.display='inline';
    $('dtpicker').style.display='none';
    
    $('calendarlink').setAttribute('href','javascript:dtpicker_open('+ido_enabled+');');
    }
    
function dtpicker_open(idoenabled)
    {
    ido_enabled=idoenabled;
    if (target.value!='' && ido_enabled==0)
        {
        tmp=target.value.split('.');
        if (tmp.length>=3)
            {
            aktev=tmp[0]*1;
            aktho=tmp[1]*1-1;
            aktnap=tmp[2]*1;
            
            origev=aktev;
            origho=aktho;
            orignap=aktnap;
            }
        }
    if (target.value!='' && ido_enabled==1)
        {
        tmp1=target.value.split(' - ');
        tmp=tmp1[0].split('.');
        
        if (tmp.length>=3)
            {
            aktev=tmp[0]*1;
            aktho=tmp[1]*1-1;
            aktnap=tmp[2]*1;
            
            origev=aktev;
            origho=aktho;
            orignap=aktnap;
            
            tmpido=tmp1[1].split(':');
            aktora=tmpido[0];
            aktperc=tmpido[1];
            }
        }
    if (!megnyitva)
        {
        dtpick=document.createElement('div');
        dtpick.setAttribute('id','dtpicker');
        $('main').appendChild(dtpick);

        block_ev=document.createElement('div');
        block_ev.setAttribute('id','block_ev');
        
        block_ho=document.createElement('div');
        block_ho.setAttribute('id','block_ho');
        
        lnyil_ev=document.createElement('img');
        lnyil_ev.setAttribute('src','images/arrow_left.png');
        lnyil_ev.setAttribute('id','lnyil_ev');
        lnyil_ev.onclick=dt_change_ev_sub;
        block_ev.appendChild(lnyil_ev);
        
        elem_ev=document.createElement('div');
        elem_ev.setAttribute('id','ev');
        block_ev.appendChild(elem_ev);
    
        rnyil_ev=document.createElement('img');
        rnyil_ev.setAttribute('src','images/arrow_right.png');
        rnyil_ev.setAttribute('id','rnyil_ev');
        rnyil_ev.onclick=dt_change_ev_add;
        block_ev.appendChild(rnyil_ev);
        $('dtpicker').appendChild(block_ev);
    
        lnyil_ho=document.createElement('img');
        lnyil_ho.setAttribute('src','images/arrow_left.png');
        lnyil_ho.setAttribute('id','lnyil_ho');
        lnyil_ho.onclick=dt_change_ho_sub;
        block_ho.appendChild(lnyil_ho);
        
        elem_ho=document.createElement('div');
        elem_ho.setAttribute('id','ho');
        block_ho.appendChild(elem_ho);
    
        rnyil_ho=document.createElement('img');
        rnyil_ho.setAttribute('src','images/arrow_right.png');
        rnyil_ho.setAttribute('id','rnyil_ho');
        rnyil_ho.onclick=dt_change_ho_add;
        block_ho.appendChild(rnyil_ho);
        $('dtpicker').appendChild(block_ho);
    
        naptabla=document.createElement('table');
        naptabla.setAttribute('id','napok');
        naptabla.setAttribute('align','center');
      
        naptabla_body=document.createElement('tbody');
    
        fejsor=document.createElement('tr');
        fejsor.className='fejlec';
        for (i=0;i<7;i++)
            {
            var cella=document.createElement('td');
            var cellText = document.createTextNode(napok[i]);
            cella.appendChild(cellText);
            fejsor.appendChild(cella);
            }
        naptabla_body.appendChild(fejsor);
        
        num=1;
        for (j=0;j<6;j++)
            {
            var sor=document.createElement('tr');
            for (i=0;i<7;i++)
                {
                var cella=document.createElement('td');
                var cellText = document.createTextNode(num);
                
                cella.setAttribute('id','cella_'+num);
                cella.setAttribute('width','24px');
                cella.appendChild(cellText);
                sor.appendChild(cella);
                num++;
                }
            naptabla_body.appendChild(sor);
            }
        
        naptabla.appendChild(naptabla_body);
        $('dtpicker').appendChild(naptabla);
    
        if (ido_enabled)
            {
            idomezok=document.createElement('div');
            idomezok.setAttribute('id','ido');
            
            var text1 = document.createTextNode('óra');
            
            ido_ora=document.createElement('input');
            ido_ora.setAttribute('id','dt_ora');
            ido_ora.setAttribute('size','2');
            ido_ora.onchange=dt_change_ora;
            
            var text2 = document.createTextNode(':');
            
            ido_perc=document.createElement('input');
            ido_perc.setAttribute('id','dt_perc');
            ido_perc.setAttribute('size','2');
            ido_perc.onchange=dt_change_perc;
            
            var text3 = document.createTextNode('perc');
            
            idomezok.appendChild(text1);
            idomezok.appendChild(ido_ora);
            idomezok.appendChild(text2);
            idomezok.appendChild(ido_perc);
            idomezok.appendChild(text3);
            
            $('dtpicker').appendChild(idomezok);
            $('dt_ora').value=aktora;
            $('dt_perc').value=aktperc;
            vanido=1;
            }
       
        $('dtpicker').style.top=($('calendarlink').offsetTop-4)+'px';
        $('dtpicker').style.left=($('calendarlink').offsetLeft+30)+'px';
        megnyitva=1;
        
        if (navigator.userAgent.indexOf("MSIE") != -1 && navigator.userAgent.indexOf("Windows") != -1)
            alphaImages();
        }

    dt_update_honap();
    dt_update_ev();
    dt_update_napok();
    
    $('calendarlink').setAttribute('href','javascript:dt_close();');

    $('dtpicker').style.display='block';
    }
    
function dtpicker_start()
    {
    inpmezo=document.getElementsByClassName('dt_datetime');
    if (inpmezo.length==1)
        {
        target=inpmezo[0];
        new Insertion.After(inpmezo[0],'<a id="calendarlink" href="javascript:dtpicker_open(1);"><img src="images/calendar.png" /></a>');
        //target.readOnly=true;
        }

    inpmezo2=document.getElementsByClassName('dt_date');
    if (inpmezo2.length==1)
        {
        target=inpmezo2[0];
        new Insertion.After(inpmezo2[0],'<a id="calendarlink" href="javascript:dtpicker_open(0);"><img src="images/calendar.png" /></a>');
        //target.readOnly=true;
        }
    }
    
Event.observe(window,'load',dtpicker_start);
