function stringLeftPad( str, size, padchar )
{
	while (str.length<size)
		str = padchar + str;
	return str;
}

function getTime() {
	// initialize time-related variables with current time settings
	var now = new Date()
	var hour = now.getHours()
	var minute = now.getMinutes()
	now = null
	var ampm = "" 

	// validate hour values	and set value of ampm
	if (hour >= 12) {
		hour -= 12
		ampm = "PM"
	} else
		ampm = "AM"
	hour = (hour == 0) ? 12 : hour

	// add zero digit to a one digit minute
	if (minute < 10)
		minute = "0" + minute // do not parse this number!

	// return time string
	return hour + ":" + minute + " " + ampm
}

function leapYear(year) {
	if (year % 4 == 0) // basic rule
		return true // is leap year
	/* else */ // else not needed when statement is "return"
		return false // is not leap year
}

function getDays(month, year) {
	// create array to hold number of days in each month
	var ar = new Array(12)
	ar[0] = 31 // January
	ar[1] = (leapYear(year)) ? 29 : 28 // February
	ar[2] = 31 // March
	ar[3] = 30 // April
	ar[4] = 31 // May
	ar[5] = 30 // June
	ar[6] = 31 // July
	ar[7] = 31 // August
	ar[8] = 30 // September
	ar[9] = 31 // October
	ar[10] = 30 // November
	ar[11] = 31 // December

	// return number of days in the specified month (parameter)
	return ar[month]
}

function getMonthName(month) {
	// create array to hold name of each month
	var ar = new Array(12)
	
	if (getLanguage()=='it') 
	{
		ar[0] = "Gennaio"
		ar[1] = "Febbraio"
		ar[2] = "Marzo"
		ar[3] = "Aprile"
		ar[4] = "Maggio"
		ar[5] = "Giugno"
		ar[6] = "Luglio"
		ar[7] = "Agosto"
		ar[8] = "Settembre"
		ar[9] = "Ottobre"
		ar[10] = "Novembre"
		ar[11] = "Dicembre"
	} else if (getLanguage()=='en') 
	{
		ar[0] = "January"
		ar[1] = "February"
		ar[2] = "March"
		ar[3] = "April"
		ar[4] = "May"
		ar[5] = "June"
		ar[6] = "July"
		ar[7] = "August"
		ar[8] = "September"
		ar[9] = "October"
		ar[10] = "November"
		ar[11] = "December"
	} else if (getLanguage()=='fr') 
	{
		ar[0] = "Janvier"
		ar[1] = "Fevreir"
		ar[2] = "Mars"
		ar[3] = "Avril"
		ar[4] = "Mai"
		ar[5] = "Juin"
		ar[6] = "Juillet"
		ar[7] = "Aout"
		ar[8] = "Septembre"
		ar[9] = "Octobre"
		ar[10] = "Novembre"
		ar[11] = "Decembre"
	} else if (getLanguage()=='es') 
	{
		ar[0] = "Enero"
		ar[1] = "Febrero"
		ar[2] = "Marzo"
		ar[3] = "Abril"
		ar[4] = "Mayo"
		ar[5] = "Junio"
		ar[6] = "Julio"
		ar[7] = "Agosto"
		ar[8] = "Septiembre"
		ar[9] = "Octubre"
		ar[10] = "Noviembre"
		ar[11] = "Diciembre"
	} else if (getLanguage()=='de') 
	{
		ar[0] = "Januar"
		ar[1] = "Februar"
		ar[2] = "März"
		ar[3] = "April"
		ar[4] = "Mai"
		ar[5] = "Juni"
		ar[6] = "Juli"
		ar[7] = "August"
		ar[8] = "September"
		ar[9] = "Oktober"
		ar[10] = "November"
		ar[11] = "Dezember"
	}
	// return name of specified month (parameter)
	return ar[month]
}

function setCal(tg) {
	// standard time attributes
	var now = new Date()
	var year = now.getFullYear()
	var month = now.getMonth()
	var monthName = getMonthName(month)
	var date = now.getDate()
	now = null

	// create instance of first day of month, and extract the day on which it occurs
	var firstDayInstance = new Date(year, month, 1)
	var firstDay = firstDayInstance.getDay()
	firstDayInstance = null

	// number of days in current month
	var days = getDays(month, year)

	// call function to draw calendar
	drawCal(firstDay + 1, days, date, monthName, year,tg)
}

function drawCal(firstDay, lastDate, date, monthName, year,target) {
	// constant table settings
	var headerHeight = 50 // height of the table's header cell
	var border = 2 // 3D height of table's border
	var cellspacing = 4 // width of table's border
	var headerColor = "midnightblue" // color of table's header
	var headerSize = "+3" // size of tables header font
	var colWidth = 60 // width of columns in table
	var dayCellHeight = 25 // height of cells containing days of the week
	var dayColor = "darkblue" // color of font representing week days
	var cellHeight = 40 // height of cells representing dates in the calendar
	var todayColor = "red" // color specifying today's date in the calendar
	var timeColor = "purple" // color of font representing current time

	// create basic table structure
	var text = "" // initialize accumulative variable to empty string
	text += '<TABLE class=\'tabCalendario\'CELLSPACING=1>' // table settings
	text += 	'<caption>' // create table header cell
	//<a href='javascript:mesePrec()'>&#139</a> <span id='nomeMese'>"+ mesi[mese-1]+ " " + anno +"</span> <a href='javascript:meseSucc()'>&#155;</a> 
	
	
	text += 	"<a href='javascript:mesePrec()'><img src='" +   getFreccinaSx() + "' style='position:absolute;left:9px;top:25px;'></a> <span id='nomeMese'>"+ monthName + ' ' + year +"</span> <a href='javascript:meseSucc()'><img src='" +  getFreccinaDx() +"'  style='position:absolute;left:135px;top:25px;'></a>"
	text += 	'</caption>' // close header cell

	// variables to hold constant settings
	var openCol = ''
	var closeCol = '</TH>'

	// create array of abbreviated day names
	var weekDay = new Array(7)
	if (getLanguage()=='it') 
	{
		weekDay[0] = "D"
		weekDay[1] = "L"
		weekDay[2] = "M"
		weekDay[3] = "M"
		weekDay[4] = "G"
		weekDay[5] = "V"
		weekDay[6] = "S"
	}else if (getLanguage()=='en') 
	{
		weekDay[0] = "S"
		weekDay[1] = "M"
		weekDay[2] = "T"
		weekDay[3] = "W"
		weekDay[4] = "T"
		weekDay[5] = "F"
		weekDay[6] = "S"
	} else if (getLanguage()=='fr') 
	{
		weekDay[0] = "D"
		weekDay[1] = "L"
		weekDay[2] = "M"
		weekDay[3] = "M"
		weekDay[4] = "J"
		weekDay[5] = "V"
		weekDay[6] = "S"
	} else if (getLanguage()=='es') 
	{
		weekDay[0] = "D"
		weekDay[1] = "L"
		weekDay[2] = "M"
		weekDay[3] = "M"
		weekDay[4] = "J"
		weekDay[5] = "V"
		weekDay[6] = "S"
	} else if (getLanguage()=='de') 
	{
		weekDay[0] = "S"
		weekDay[1] = "M"
		weekDay[2] = "D"
		weekDay[3] = "M"
		weekDay[4] = "D"
		weekDay[5] = "F"
		weekDay[6] = "S"
	}


	// create first row of table to set column width and specify week day
	text += '<TR ALIGN="center" VALIGN="center">'
	for (var dayNum = 0; dayNum < 7; ++dayNum) {
		switch(dayNum)
		{
		 case 6:
		 {
		 openCol='<TH class="sab" >'
		 break
		 }
		 case 0:
		 {
		 openCol='<TH class="dom" >'
		  break
		 }
		 default:
		 {
		 openCol='<TH>'
		 }
		}
		 text += openCol + weekDay[dayNum] + closeCol 
		
	}
	text += '</TR>'
	
	// declaration and initialization of two variables to help with tables
	var digit = 1
	var curCell = 1
	
	for (var row = 1; row <= Math.ceil((lastDate + firstDay - 1) / 7); ++row) {
		text += '<TR ALIGN="right" VALIGN="top">'
		for (var col = 1; col <= 7; ++col) {
		switch(col)
		{
		 case 7:
		 {
		 openCol='class="sab"'
		 break
		 }
		 case 1:
		 {
		 openCol='class="dom"'
		  break
		 }
		 default:
		 {
		 openCol=''
		 }
		}		
			if (digit > lastDate)
				break
			if (curCell < firstDay) {
				text += '<TD></TD>';
				curCell++
			} else 	{

			if ((giorno_part!='') && (mese_part!='') && (anno_part!='') && (CurrentCal==2))
			{
				var annoN = anno_part
				var meseN = mese_part
				var giornoN = giorno_part					
			}else{
				var DATAnow = new Date()
				var annoN = DATAnow.getFullYear()
				var meseN = DATAnow.getMonth()
				var giornoN = DATAnow.getDate()			
				meseN++			
			}			
			
			check_anno = anno
			check_mese = mese
							
			if (target == 'calNEW_SUCC')
			{
				check_mese++
				if (check_mese > 12)
				{
					check_mese = 1
					check_anno = check_anno + 1
				}
			}												
			
			if ((check_anno>annoN)||((check_anno==annoN) && (check_mese>meseN))||((check_anno==annoN) && (check_mese==meseN) && (giornoN<=digit)))
				{
				if (target == 'calNEW_SUCC')
					text += '<TD '+openCol+' onClick="document.getElementById(\'cal1\').style.display=\'none\';document.getElementById(\'part\').style.visibility=\'visible\';viewALL();injData(this,\'destinatario\',\'calNEW_SUCC\')">' + digit + '</TD>'
				else					
					text += '<TD '+openCol+' onClick="document.getElementById(\'cal1\').style.display=\'none\';document.getElementById(\'part\').style.visibility=\'visible\';viewALL();injData(this,\'destinatario\',\'calNEW\')">' + digit + '</TD>'
				}
			else
				text += '<TD style="cursor:default!important" '+openCol+'><font color="#CFCFCF"> ' + digit + '</font></TD>'									
			
					
			digit++
			}
			
		}
		text += '</TR>'
	}
	
	// close all basic table tags
	text += '</TABLE>'
	// print accumulative HTML string
	//document.write(text) 

	document.getElementById(target).innerHTML=text	
		
}

function mesePrec(perc)
{
mese--
 
if (mese < 0) 
{
	mese=11
 	anno--
 }

//
var now = new Date()
var year = anno
var month = mese
month = month - 1
if (month < 0){
	month = 11
	year--
}
var monthName = getMonthName(month)
var date = now.getDate()
now = null
var firstDayInstance = new Date(year, month, 1)
var firstDay = firstDayInstance.getDay()
firstDayInstance = null
var days = getDays(month, year)				
drawCal(firstDay + 1, days, date, monthName, year,'calNEW')
							
//
month = month + 1
if (month > 11){
	month = 0
	year = year + 1
}
monthName = getMonthName(month)
now = null
firstDayInstance = new Date(year, month, 1)
firstDay = firstDayInstance.getDay()
firstDayInstance = null
days = getDays(month, year)					
drawCal(firstDay + 1, days, date, monthName, year,'calNEW_SUCC') 		

}
function meseSucc(perc)
{

mese++
if (mese > 12) 
{
	mese=1
 	anno++
 }
//
var now = new Date()
var year = anno
var month = mese
month = month - 1
if (month > 12){
	month = 1
	year++
}
var monthName = getMonthName(month)
var date = now.getDate()
now = null
var firstDayInstance = new Date(year, month, 1)
var firstDay = firstDayInstance.getDay()
firstDayInstance = null
var days = getDays(month, year)				
drawCal(firstDay + 1, days, date, monthName, year, 'calNEW')
							
//
month = month + 1
if (month >= 12){
	month = 0
	year++
}
monthName = getMonthName(month)
now = null
firstDayInstance = new Date(year, month, 1)
firstDay = firstDayInstance.getDay()
firstDayInstance = null
days = getDays(month, year)					
drawCal(firstDay + 1, days, date, monthName, year, 'calNEW_SUCC') 	
}

function injData(who,where, target)
{
	if (outputform=='')
		theform = document.forms[0];
	else
		theform = document.forms[outputform];
		
	n_mese = mese
	n_anno = anno
	if (target == 'calNEW_SUCC'){
		n_mese = n_mese + 1
		if (n_mese > 12)
		{
			n_mese = 1
			n_anno = n_anno + 1
			}
		theform[eval(where)].value = stringLeftPad(who.innerHTML,2,'0')+"/"+stringLeftPad(""+n_mese,2,'0')+"/"+n_anno;
		}
	else{
		theform[eval(where)].value = stringLeftPad(who.innerHTML,2,'0')+"/"+stringLeftPad(""+n_mese,2,'0')+"/"+n_anno;
		}
		
	giorno_part = who.innerHTML
	mese_part = n_mese
	anno_part = anno	
}

// -->