function k_kalendar(target) {
	var kalendario=document.getElementById('kalendario');
	if(!kalendario) {
		//se non e' ancora stato inizializzato il kal, lo inizializzo
		kalendario=document.createElement('DIV');
		document.body.appendChild(kalendario);
		kalendario.id="kalendario";
		}
	//nascondo il kalendario
	kalendario.style.display="none";
	kalendario.setAttribute('ktarget',target);

	var target=document.getElementById(target);

	var keyPos=kGetPosition(kWindow.elementOver);
	if(keyPos.x+150>kWindow.clientWidth()) keyPos.x=kWindow.clientWidth()-150;
	kalendario.style.top=keyPos.y+'px';
	kalendario.style.left=keyPos.x+'px';

	//prelevo la data dall'input e la imposto
	var data=target.value;
	if(data=='') {
		var d=new Date(),
		data=d.getUTCDate()+'.'+(d.getUTCMonth()+1)+'.'+d.getUTCFullYear();
		}
	data=data.split(".");
	for(i=0;data[i];i++) { data[i]=parseInt(data[i]); }
	var d=new Date(data[2],data[1],data[0]+1);
	data=d.getUTCDate()+'.'+d.getUTCMonth()+'.'+d.getUTCFullYear();
	data=data.split(".");
	kalendario.setAttribute('kgg',data[0]);
	kalendario.setAttribute('kmm',data[1]);
	kalendario.setAttribute('kaaaa',data[2]);

	k_kalendarPopulate(data[2],data[1]);
	
	//mostro il calendario
	kalendario.style.display="block";
	}

function k_kalendarGiorniDelMese(anno,mese) {
	var d=new Date(anno,mese,0);
	return d.getUTCDate();
	}
function k_kalendarPrimoDelMese(anno,mese) {
	var d=new Date(anno,mese-1,1);
	var inizio=parseInt(d.getDay())-1;
	if(inizio==-1) inizio=6;
	return inizio;
	}
function k_kalendarPrevMonth(anno,mese) {
	var d=new Date(anno,mese,0)
	return Array(d.getUTCFullYear(),d.getUTCMonth());
	}
function k_kalendarNextMonth(anno,mese) {
	var d=new Date(anno,(parseInt(mese)+2),0)
	return Array(d.getUTCFullYear(),d.getUTCMonth());
	}
function k_kalendarSetDate(anno,mese,giorno,dn) {
	var kalendario=document.getElementById('kalendario');
	var target=kalendario.getAttribute('ktarget');
	document.getElementById(target).value=giorno+'.'+mese+'.'+anno;
	document.getElementById('giornoLettere').innerHTML=giorni[dn]+' <strong>'+giorno+' '+mesi[mese]+'</strong> '+anno;
	k_kalendarClose();
	}
function k_kalendarClose() {
	var kalendario=document.getElementById('kalendario');
	kalendario.style.display='none';
	}

function k_kalendarPopulate(anno,mese) {
	var kalendario=document.getElementById('kalendario');
	var mesi=Array("Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre");
	var giorni=Array("Lun","Mar","Mer","Gio","Ven","Sab","Dom");

	var gg=kalendario.getAttribute('kgg');
	var mm=kalendario.getAttribute('kmm');
	var aaaa=kalendario.getAttribute('kaaaa');

	var d=new Date(anno,mese,1);
	var data=d.getUTCDate()+'.'+d.getUTCMonth()+'.'+d.getUTCFullYear();
	data=data.split(".");

	var gm=k_kalendarGiorniDelMese(anno,mese);
	var inizio=k_kalendarPrimoDelMese(anno,mese);
	var dn=0;

	var html='';
	html+='<div class="kalheader">';
	html+='<a href="javascript:k_kalendarClose()" class="close">chiudi</a>';
	html+='<a href="javascript:k_kalendarPopulate('+k_kalendarPrevMonth(anno,mese)[0]+','+k_kalendarPrevMonth(anno,mese)[1]+');" class="prev">&lt;</a>';
	html+='<h2>'+mesi[d.getUTCMonth()]+' '+d.getUTCFullYear()+'</h2>';
	html+='<a href="javascript:k_kalendarPopulate('+k_kalendarNextMonth(anno,mese)[0]+','+k_kalendarNextMonth(anno,mese)[1]+')" class="next">&gt;</a>';
	html+='</div>';
	html+='<ul>';
	for(i=0;i<giorni.length;i++) {
		html+='<li class="giorni">'+giorni[i]+'</li>';
		dn++;
		if(dn>=7) dn=0;
		}
	for(i=1;i<=inizio;i++) {
		html+='<li></li>';
		dn++;
		if(dn>=7) dn=0;
		}
	for(i=1;i<=gm+1;i++) {
		html+='<li><a href="javascript:k_kalendarSetDate('+anno+','+mese+','+i+','+dn+');"';
		if(aaaa==anno&&mm==mese&&gg==i) html+=' class="sel"';
		html+='>'+i+'</a></li>';
		dn++;
		if(dn>=7) dn=0;
		}
	html+='</ul>';

	kalendario.innerHTML=html;
	}

function k_dataora(target) {
	var dataora=document.getElementById('dataora');
	if(!dataora) {
		//se non e' ancora stato inizializzato il kal, lo inizializzo
		dataora=document.createElement('DIV');
		document.body.appendChild(dataora);
		dataora.id="dataora";
		}
	//nascondo il dataora
	dataora.style.display="none";
	dataora.setAttribute('ktarget',target);

	var target=document.getElementById(target);

	var keyPos=kGetPosition(kWindow.elementOver);
	if(keyPos.x+150>kWindow.clientWidth()) keyPos.x=kWindow.clientWidth()-150;
	dataora.style.top=keyPos.y+'px';
	dataora.style.left=keyPos.x+'px';

	//prelevo la data dall'input e la imposto
	var data=target.value;
	if(data=='') {
		var d=new Date(),
		data=d.getUTCHours()+':'+d.getUTCMinutes();
		}
	data=data.split(":");
	for(i=0;data[i];i++) { data[i]=parseInt(data[i]); }
	dataora.setAttribute('khh',data[0]);
	dataora.setAttribute('kii',data[1]);

	k_dataoraPopulate();
	
	//mostro il dataora
	dataora.style.display="block";
	}

function k_dataoraPopulate() {
	var dataora=document.getElementById('dataora');

	var hh=dataora.getAttribute('khh');
	var ii=dataora.getAttribute('kii');
	var html='';
	html+='<select name="newhh" id="newhh">';
		for(var i=0;i<=23;i++) {
			html+='<option value="'+i+'"';
			if(i==hh) html+=' selected';
			html+='>'+i+'</option>';
			}
		html+='</select> ';
	html+='<select name="newii" id="newii">';
		for(var i=0;i<60;i+=15) {
			html+='<option value="'+i+'"';
			if(i==ii) html+=' selected';
			html+='>'+i+'</option>';
			}
		html+='</select> ';
	html+='<input type="button" onclick="k_dataoraSet();" value="Cambia" />';
	dataora.innerHTML=html;
	}

function k_dataoraSet() {
	var dataora=document.getElementById('dataora');
	var target=dataora.getAttribute('ktarget');
	var hh=document.getElementById('newhh').value;
	var ii=document.getElementById('newii').value;
	document.getElementById(target).value=hh+':'+ii;
	document.getElementById('oraLettere').innerHTML=hh+':'+ii;
	k_dataoraClose();
	}

function k_dataoraClose() {
	var dataora=document.getElementById('dataora');
	dataora.style.display='none';
	}