//Written by Bogdan Blaszczak/BlaTek
//blatek@25.pl
    function Calendar(E,T){
        if(!document.getElementById||!document.body.appendChild)return
        var i,j,tBody,Row,od,Do,d,dt
        function cEl(t,p,h,w){
            p.appendChild(t=document.createElement(t))
            if(h)t.innerHTML=h;if(w)t.style.width='27px'
            return t}
        function cB(x){with(cld_BlaTek){
                B=0;x==0?R--:x==1?R++:x==2?(!M?(M=11,R--):M--):(M==11?(M=0,R++):M++)}
        }
        with(cld_BlaTek){
            od=Date.UTC(R,M,1);Do=Date.UTC(R,M+1,1)}
        E=document.getElementById(E)
        while(E.childNodes.length)E.removeChild(E.firstChild)
        tBody=cEl('tbody',cEl('table',E))
        tBody.onmouseup=function(){T.focus()}
        tBody.onmousemove=function(){
            if(window.getSelection)window.getSelection().removeAllRanges()}
        Row=cEl('tr',tBody)
        cEl('th',Row,'«',1).onmousedown=function(){cB(0)}
        cEl('th',Row,cld_BlaTek.R)
        cEl('th',Row,'»',1).onmousedown=function(){cB(1)}
        Row=cEl('tr',tBody)
        cEl('th',Row,'«',1).onmousedown=function(){cB(2)}
        cEl('th',Row,cld_BlaTek.month[cld_BlaTek.M])
        cEl('th',Row,'»',1).onmousedown=function(){cB(3)}

        tBody=cEl('tbody',cEl('table',E))
        Row=cEl('tr',tBody)
        for(i=0;i<7;i++)
            with(cEl('th',Row,cld_BlaTek.day[i]))
        if(i==6)style.backgroundColor='#f88'

        for(i=od;i<Do;i+=86400000){
            with(new Date(i)){d=getUTCDate();dt=getUTCDay()}
            if(dt==1||i==od)Row=cEl('tr',tBody)
            if(dt!=1&&d==1)for(j=1;j<(dt?dt:7);j++)cEl('td',Row)
            dt=cEl('td',Row,d);dt.onmousedown=function(x){
                x=+this.innerHTML
                with(cld_BlaTek)
                T.value=(x<10?'0'+x:x)+'/'+((x=M+1)<10?'0'+x:x)+'/'+R
            }
            with(cld_BlaTek)
            if(d==D.getDate()&&M==D.getMonth()&&R==D.getFullYear())
            {
                dt.style.backgroundColor='#243855'
                dt.style.color='white';
            }
        }
        T.onblur=function(){if(cld_BlaTek.B)E.style.display='none'}
        cld_BlaTek.B=1;E.style.display='block'
    }


    //global object (You can translate month&day names)
    cld_BlaTek={
        day:['pn','wt','śr','cz','pt','so','n'],
        month:['styczeń','luty','marzec','kwiecień','maj','czerwiec',
            'lipiec','sierpień','wrzesień','październik','listopad','grudzień'],
        D:new Date(),M:new Date().getMonth(),R:new Date().getFullYear()
    }
