
var sbdatecal
var sbcalcreate=false;
var sbdateinpute

function sbseldate(e,evt)
{
if (!sbcalcreate)
   {
   sbdatecal = new Date()
   
   var sbcal = document.createElement("div");sbcal.id="sbcal";sbcal.style.position="absolute";sbcal.style.top="200px";sbcal.style.display="none";sbcal.style.backgroundColor="white"; sbcal.style.borderColor="black"; sbcal.style.borderStyle="solid"; sbcal.style.borderWidth="1px"
   
   var tbl=document.createElement("table");tbl.border=0;tbl.style.fontSize=12;tbl.style.fontFamily="serif";tbl.width="154px";tbl.cellPadding=0;tbl.cellSpacing=0;
   var thd=document.createElement("thead");
   var ttr=document.createElement("tr");
   var tth=document.createElement("th");tth.colSpan=7;
   
   var tbli=document.createElement("table");tbli.border=0;tbli.style.fontSize=12;tbli.style.fontFamily="serif";tbli.width="100%";tbli.cellPadding=0;tbli.cellSpacing=0;
   var tbdi=document.createElement("tbody");
   var ttri=document.createElement("tr");
   var tthi=document.createElement("th");tthi.rowSpan=2;
   
   var sel=document.createElement("select");sel.style.width="92px";sel.id="sbmcal";
   sel.onclick=sbredrowcal
   
   var m= new Array("Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь")
   for (var i=0;i<12;i++){var selop=document.createElement("option"); selop.value=i; selop.innerHTML=m[i]; sel.appendChild(selop);}
   
   tthi.appendChild(sel);
   ttri.appendChild(tthi);
   
   var tthi=document.createElement("th");tthi.rowSpan=2;
   var inp=document.createElement("input");inp.type="text";inp.style.width="46px";inp.id="sbycal";inp.readOnly=true;
   tthi.appendChild(inp);
   ttri.appendChild(tthi);
   
   var tthi=document.createElement("th");
   var but=document.createElement("input");but.type="button";but.style.width="16px";but.style.height="10px";but.value="";
   but.onmousedown=sbyupdoit
   tthi.appendChild(but);
   
   ttri.appendChild(tthi);
   tbdi.appendChild(ttri);
   
   var ttri=document.createElement("tr");
   var tthi=document.createElement("th");
   var but=document.createElement("input");but.type="button";but.style.width="16px";but.style.height="10px";but.value=" ";
   but.onmousedown=sbydowndoit
   tthi.appendChild(but);
   ttri.appendChild(tthi);
   tbdi.appendChild(ttri);
   
   tbli.appendChild(tbdi);
   
   tth.appendChild(tbli);
   ttr.appendChild(tth);
   thd.appendChild(ttr);

   var ttr=document.createElement("tr");ttr.style.color="White";ttr.style.backgroundColor="Silver";
   
   var dw= new Array("П","В","С","Ч","П","С","В")
   for (var i=0;i<7;i++){var tth=document.createElement("th");tth.width="22px";tth.innerHTML=dw[i];ttr.appendChild(tth);}
   thd.appendChild(ttr);
   tbl.appendChild(thd);
  
   var tbd=document.createElement("tbody");tbd.style.cursor="hand";tbd.id="sbbcal";
   tbd.onclick=sbsetdateclose;
   for (var i=0;i<7;i++)
   	   {
	   var ttr=document.createElement("tr");ttr.style.height="1px"
   	   for (var j=0;j<7;j++){var ttd=document.createElement("td");ttd.style.textAlign="center";ttr.appendChild(ttd);}
	   tbd.appendChild(ttr);
	   }
   
   tbl.appendChild(tbd);
   
   sbcal.appendChild(tbl);
   document.body.appendChild(sbcal);

   sbcalcreate=true
   }

sbdateinpute=e
var sbstr = sbdateinpute.value
if (sbstr.length!=10)
   {
   document.getElementById("sbmcal").value=sbdatecal.getMonth()
   var i=sbdatecal.getYear();if (i < 1900) i=i-0+1900;
   document.getElementById("sbycal").value=i;
   }
else
   {
   document.getElementById("sbmcal").value=(sbstr.substr(5, 2)-1)
   document.getElementById("sbycal").value=(sbstr.substr(0,4))
   }

sbredrowcal()
var elsbcal=document.getElementById("sbcal")
elsbcal.style.left=evt.clientX
elsbcal.style.top=evt.clientY

//sbselhide()
elsbcal.style.display="inline"
}

function sbyupdoit(){document.getElementById("sbycal").value++;sbredrowcal()}
function sbydowndoit(){document.getElementById("sbycal").value--;sbredrowcal()}

function sbredrowcal()
{
sbdatecal.setDate(1)
sbdatecal.setMonth(document.getElementById("sbmcal").value)
sbdatecal.setYear(document.getElementById("sbycal").value)

var dmax, m=sbdatecal.getMonth()
for (dmax=1;dmax<32;dmax++) {sbdatecal.setDate(dmax);if (m!=sbdatecal.getMonth()) break}

sbdatecal.setDate(1)
sbdatecal.setMonth(m)
for (var i=0;i<7;i++) for (var j=0;j<7;j++)
	{
	document.getElementById("sbbcal").childNodes[i].childNodes[j].innerHTML=''
	document.getElementById("sbbcal").childNodes[i].childNodes[j].style.color=""
	document.getElementById("sbbcal").childNodes[i].childNodes[j].style.background="green"
	}
var d,n=0
var sbstr = sbdateinpute.value;
if (sbstr.length>0)	sbstr=sbstr.substr(8, 2)
else {var dt= new Date();var dd=dt.getDate();var dd=(dd<10)?'0'+dd:dd;sbstr=dd}

for (d=1;d<dmax;d++)
	{
	sbdatecal.setDate(d);w=sbdatecal.getDay()-1;w=(w==-1)?6:w
	var dd=(d<10)?'0'+d:d
	document.getElementById("sbbcal").childNodes[n].childNodes[w].innerHTML=dd
	if (sbstr==dd)
	   {
	   document.getElementById("sbbcal").childNodes[n].childNodes[w].style.color="white"
	   document.getElementById("sbbcal").childNodes[n].childNodes[w].style.background="navy"
	   }
	if (w==6) n++
	}
}

function sbsetdateclose(evt)
{
sbsetdate(evt);
document.getElementById("sbcal").style.display="none"
//sbselshow()
}

function sbsetdate(evt)
{
var td=(document.all)?event.srcElement:evt.target;
var d=td.innerHTML;if (d.length==0) return
var m=parseInt(document.getElementById("sbmcal").value)+1;if (m<10) m='0'+m
sbdateinpute.value=document.getElementById("sbycal").value+'-'+m+'-'+d


}

function sbselhide()
{
if (!document.all) return
var sel = document.all.tags("SELECT");
var nsel=sel.length;
for (var i=0; i<nsel;i++) if (sel(i).id!="sbmcal") sel(i).style.visibility="hidden"
}

function sbselshow()
{
if (!document.all) return
var sel = document.all.tags("SELECT");
var nsel=sel.length;
for (var i=0; i<nsel;i++) if (sel(i).id!="sbmcal") sel(i).style.visibility="visible"
}
