
//Written by Bogdan Blaszczak/BlaTek
//blatek@25.pl
//kalendarzyk
function Calendar(E,T,m){
 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('td',Row,'&#171;',1).onmousedown=function(){cB(0)}
 cEl('th',Row,cld_BlaTek.R)
 cEl('td',Row,'&#187;',1).onmousedown=function(){cB(1)}
 Row=cEl('tr',tBody)
 cEl('td',Row,'&#171;',1).onmousedown=function(){cB(2)}
 cEl('th',Row,cld_BlaTek.month[cld_BlaTek.M])
 cEl('td',Row,'&#187;',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='#EFD1D1';
     else style.backgroundColor='#EFD1D1';
  }
 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('th',Row)
    dt=cEl('td',Row,d);
    dt.onmousedown=function(x){
      x=+this.innerHTML;
      with(cld_BlaTek){
		xxx1=x;//dzien
	    dzien=(x<10?'0'+x:x);
	    xxx2=M;//miesiac
	    miesiac=((x=M+1)<10?'0'+x:x);
        T.value=R+'-'+miesiac+'-'+dzien;//wstawianie daty do inputa
		if(m!=1){
	        if(xxx1<D.getDate()&&xxx2==D.getMonth()&&R==D.getFullYear()){//blokada poprzednich dni
	        T.value='';
	        T.onclick=window.alert('Wybrana data nie moze byc wczesniejsza od dnia dzisiejszego.');
	        }
	        if(xxx2<D.getMonth()&&R==D.getFullYear()){//blokada poprzednich miesiecy
	        T.value='';
	        T.onclick=window.alert('Wybrana data nie moze byc wczesniejsza od dnia dzisiejszego.');
	        }
	        if(R<D.getFullYear()){//blokada poprzednich lat
	        T.value='';
	        T.onclick=window.alert('Wybrana data nie moze byc wczesniejsza od dnia dzisiejszego.');
	        }
		}
      }
  }
  if(m!=1){
  with(cld_BlaTek){
	dt.style.backgroundColor='#EFD1D1';
	dt.style.color='#652A27';
	if(d<D.getDate()&&M==D.getMonth()&&R==D.getFullYear()){
	  dt.style.color="silver";
	  dt.style.cursor="default";
	}
	if(M<D.getMonth()&&R==D.getFullYear()){
	  dt.style.color="silver";
	  dt.style.cursor="default";
	}
	if(R<D.getFullYear()){
	  dt.style.color="silver";
	  dt.style.cursor="default";
	}
    if(d==D.getDate()&&M==D.getMonth()&&R==D.getFullYear()){
      dt.style.backgroundColor='#FF8888';
    }
   }
  }
 }
 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:['mo','tu','we','th','fr','sa','su'],
 month:['styczen','luty','marzec','kwiecien','maj','czerwiec',
 'lipiec','sierpien','wrzesien','pazdziernik','listopad','grudzien'],
 D:new Date(),M:new Date().getMonth(),R:new Date().getFullYear()
}

