

var colorweekday=new Array("","","","","","#757575","#757575")
var sbcalcreate=false
var sbdateinpute
var sbtimeout=null
//-----------------------------
function seldate(e,evt)
{
if (!sbcalcreate)
	{
	var sbcal = document.createElement("div");sbcal.id="sbcal";sbcal.style.position="absolute";sbcal.style.display="none";sbcal.style.backgroundColor="White"; sbcal.style.borderColor="black"; sbcal.style.borderStyle="solid"; sbcal.style.borderWidth="1px"
	sbcal.onmouseout=sbmouseout
    sbcal.onmouseover=sbmouseover

	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
    tbl.onmouseout=sbmoutall
	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
    sel.onmouseout=sbmoutall

	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=false
    inp.onmouseout=sbmoutall
	tthi.appendChild(inp)
	var inp=document.createElement("input");inp.type="text";inp.id="sbdcal";inp.style.display="none"
    inp.onmouseout=sbmoutall
	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.onmouseout=sbmoutall
	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.onmouseout=sbmoutall
	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")
	var tth=document.createElement("th");tth.colSpan=7;tth.innerHTML="сегодня";tth.style.cursor="hand";tth.onclick=sbsetcurdate
	ttr.appendChild(tth)
	thd.appendChild(ttr)
	tbl.appendChild(thd)

	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
sbselhide()
var sbcal=document.getElementById("sbcal")
sbcal.style.display="inline"
sbcal.style.left=evt.clientX+10
sbcal.style.top=evt.clientY+getBodyScrollTop()-10

var sbstr = sbdateinpute.value
if (sbstr && sbstr.length==10)
	{
	document.getElementById("sbdcal").value=(sbstr.substr(0,2))
	document.getElementById("sbmcal").value=(sbstr.substr(3,2)-1)
	document.getElementById("sbycal").value=(sbstr.substr(6,4))
	sbredrowcal()
	}
else sbsetcurdate()
}
//--------------------------------
function getBodyScrollTop()
{
	return self.pageYOffset || (document.documentElement && document.documentElement.scrollTop) || (document.body && document.body.scrollTop);
}
//-----------------------------
function sbsetcurdate()
{
var dt = new Date()
var d=dt.getDate();d=(d<10)?'0'+d:d
var m=dt.getMonth()
var i=dt.getYear();if (i < 1900) i=i-0+1900

document.getElementById("sbdcal").value=d
document.getElementById("sbmcal").value=m
document.getElementById("sbycal").value=i

sbredrowcal()
}
//-----------------------------
function sbyupdoit(){document.getElementById("sbycal").value++;sbredrowcal()}
//-----------------------------
function sbydowndoit(){document.getElementById("sbycal").value--;sbredrowcal()}
//-----------------------------
function sbredrowcal()
{
var dt = new Date()
dt.setDate(1)
dt.setMonth(document.getElementById("sbmcal").value)
dt.setYear(document.getElementById("sbycal").value)

var dmax, m=dt.getMonth()
for (dmax=1;dmax<32;dmax++) {dt.setDate(dmax);if (m!=dt.getMonth()) break}

dt.setDate(1)
dt.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=colorweekday[j]
	document.getElementById("sbbcal").childNodes[i].childNodes[j].style.background="white"
	}

var d,n=0
var sbstr = document.getElementById("sbdcal").value;
if (sbstr.length>0)	sbstr=sbstr.substr(0, 2)
else {var ndt= new Date();var dd=ndt.getDate();dd=(dd<10)?'0'+dd:dd;sbstr=dd}

for (d=1;d<dmax;d++)
	{
	dt.setDate(d);w=dt.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="#555444"
		}
	if (w==6) n++
	}
}
//-----------------------------
function sbsetdateclose(evt){sbsetdate(evt);sbcalhide()}
//-----------------------------
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=d+'.'+m+'.'+document.getElementById("sbycal").value
}
//-----------------------------
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="visible"
}
//-----------------------------
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"
}
//-----------------------------
function sbcalhide(){document.getElementById("sbcal").style.display="none";sbselshow()}
//-----------------------------
function sbmouseout(){sbmouseover();sbtimeout=setTimeout("sbcalhide()",15000)}
//-----------------------------
function sbmoutall(evt){return true}
//-----------------------------
function sbmouseover(){if (sbtimeout) clearTimeout(sbtimeout);sbtimeout=null}
//-----------------------------


