/*
---------------------------------------------------------
Author : Andrea Piccoli / Sasa Grujic
Source : www.eurotarget.it
Date : 05/11/2009
DHTML Agenda
Version 5.5
---------------------------------------------------------
*/

var diaryLng;
var diaryDiv;
var diaryTitle;
var diaryFlag;
var diaryMode;
var diaryRange;
var ctrl;
var sel;
var yyFrom;
var yyTo;
var diaryCrtl = 0;

var tasks = new Array;
tasks[1]="00001|20091105|Porte Aperte||0"
tasks[2]="00001|20091105|Corso on-line|#|0"
tasks[3]="00001|20091105|Appuntamento privato||1"
tasks[4]="00001|20091105|Appuntamento privato||1"
tasks[5]="00001|20091105|Appuntamento||0"
tasks[6]="00002|20091110|Appuntamento||0"
tasks[7]="00001|20091120|Appuntamento privato||1"

function diaryLeapYear(year) {
	if (year % 4 == 0)
		return true 	// anno bisestile
		return false 	// anno non bisestile
}

function diaryGetDays(month, year) {
	// array per giorni del mese
	var mm 	= new Array(12)
	mm[1] 	= 31 // Gennaio
	mm[2] 	= (diaryLeapYear(year)) ? 29 : 28 // Febbraio
	mm[3] 	= 31 // Marzo
	mm[4] 	= 30 // Aprile
	mm[5] 	= 31 // Maggio
	mm[6] 	= 30 // Giunio
	mm[7] 	= 31 // Luglio
	mm[8] 	= 31 // Agosto
	mm[9] 	= 30 // Settembte
	mm[10] 	= 31 // Ottobre
	mm[11] 	= 30 // Novembre
	mm[12] 	= 31 // Dicembre
	// giorni del mese
	return mm[month]
}

function diaryGetMonthName(month) {
	// array mesi
	var mn 	= new Array(12)
	if (diaryLng=='ITA') {
		mn[1] 	= "Gennaio"
		mn[2] 	= "Febbraio"
		mn[3] 	= "Marzo"
		mn[4] 	= "Aprile"
		mn[5] 	= "Maggio"
		mn[6] 	= "Giugno"
		mn[7] 	= "Luglio"
		mn[8] 	= "Agosto"
		mn[9] 	= "Settembre"
		mn[10] 	= "Ottobre"
		mn[11] 	= "Novembre"
		mn[12] 	= "Dicembre"
	} else {
		mn[1] 	= "January"
		mn[2] 	= "February"
		mn[3] 	= "March"
		mn[4] 	= "April"
		mn[5] 	= "May"
		mn[6] 	= "June"
		mn[7] 	= "July"
		mn[8] 	= "Agust"
		mn[9] 	= "Septeber"
		mn[10]	= "October"
		mn[11] 	= "November"
		mn[12] 	= "December"
	} 
	// mese
	return mn[month]
}

function diaryGetWeekDay(weekday) {
	var wd = new Array(7)
	if (diaryLng=='ITA') {
		wd[0] = "Do"
		wd[1] = "Lu"
		wd[2] = "Ma"
		wd[3] = "Me"
		wd[4] = "Gi"
		wd[5] = "Ve"
		wd[6] = "Sa"
	} else {
		wd[0] = "Su"
		wd[1] = "Mo"
		wd[2] = "Tu"
		wd[3] = "We"
		wd[4] = "Th"
		wd[5] = "Fr"
		wd[6] = "Sa"
	}
	return wd[weekday]
}

function diaryGetDescription(code) {
	var lng = new Array()
	if (diaryLng=='ITA') {
		lng[0] = "Oggi"
		lng[1] = "Appuntamenti"
		lng[2] = "Appuntamento"
		lng[3] = "Dal"
		lng[4] = "Al"
		lng[5] = "Calendario"
		lng[6] = "Salva"
		lng[7] = "Elimina"
		lng[8] = "Elenco Appuntamenti"
		lng[9] = "Nessun appuntamento in elenco<br>per il giorno selezionato."
		lng[10] = "Nuovo"
	} else {
		lng[0] = "Today"
		lng[1] = "Tasks"
		lng[2] = "Task"
		lng[3] = "From"
		lng[4] = "To"
		lng[5] = "Calendar"
		lng[6] = "Save"
		lng[7] = "Delete"
		lng[8] = "Tasks list"
		lng[9] = "No tasks for day selected."
		lng[10] = "New"
	}
	return lng[code]
}


function diaryOpen(dTarget, dMode, dRange, dLang, dHead, dFlag) {
	diaryDiv 	= dTarget;
	diaryTitle 	= dHead;
	diaryLng 	= dLang;
	diaryFlag	= dFlag;
	diaryMode	= dMode;
	diaryRange	= dRange;

	// gestione anni fissa (F) e variabile (V)
	// se mode='F' range deve contene l'anno di inizio | quello di fine
	// se mode='V' range deve contene il numero di anni pre | post l'anno corrente
	
	var k;
	if (dMode=='F') {
		k 		= dRange.split('|');
		yyFrom	= Number(k[0]);
		yyTo	= Number(k[1]);
		k 		= null;
	} else if (dMode=='V') {
		k 		= dRange.split('|');
		y 		= new Date();
		yyFrom	= y.getFullYear()-Number(k[0]);
		yyTo 	= y.getFullYear()+Number(k[1])-1;
		k 		= null;
	}

	var now 	= new Date(); // oggi
	var day 	= now.getDate(); // giorno
	var month 	= now.getMonth()+1; // mese
	var year 	= now.getFullYear(); // anno
	now 		= null;
	diarySet(year, month, day);
}

function diaryReset() {
	var now 	= new Date(); // oggi
	var day 	= now.getDate(); // giorno
	var month 	= now.getMonth()+1; // mese
	var year 	= now.getFullYear(); // anno
	now 		= null;
	diarySet(year, month, day);
}

function diaryGoUp(yy, mm) {
	var year 	= yy;
	var month 	= mm;
	var day		= sel;
	
	if (mm!=12) {
		var month 	= month+1;
		diarySet(year, month, day);
	} else if (year < yyTo) {
		var year 	= parseInt(year)+1;
		var month 	= 1;
		diarySet(year, month, day);
	}
}

function diaryGoDown(yy, mm) {
	var year 	= yy;
	var month 	= mm;
	var day		= sel;
	
	if (mm!=1) {
		var month 	= month-1;
		diarySet(year, month, 1);
	} else if (year > yyFrom) {
		var year 	= parseInt(year)-1;
		var month	= 12;
		diarySet(year, month, 1);
	}
}

function diarySet(yy, mm, dd) {
	var year 		= yy;
	var month 		= mm;
	var day 		= dd;
	var monthName 	= diaryGetMonthName(month); // nome mese	
	now 			= null;

	// primo giorno del mese
	var firstDayInstance = new Date(year, month-1, 1);
	var firstDay 		= firstDayInstance.getDay();
	firstDayInstance 	= null;

	// numero di giorni nel mese
	var days = diaryGetDays(month, year);

	// disegna calendario
	diaryDraw(firstDay, days, day, month, year);
}	

function diaryDraw(firstDay, lastDate, dd, mm, yy) {

	var month 	= mm;
	var year 	= yy;
	var day 	= dd;
	mm_val 		= parseInt(month);
	yy_val 		= parseInt(year);
	
	// data corrente
	var now 	= new Date(); // oggi
	var dd_cur 	= now.getDate(); // giorno
	var yy_cur 	= now.getYear(); // anno
	var mm_cur 	= now.getMonth()+1; // mese
	
	//div titolo e comandi
	var diaryTxt = '';
	diaryTxt += '<h2>';
	diaryTxt += diaryTitle;
	diaryTxt += '</h2>';
	diaryTxt += '  <ul id="diary-cmd">';
	diaryTxt += '	 <li class="diary-btn prev" onClick="diaryGoDown('+ yy +', ' + mm +')">&laquo;</li>';
	diaryTxt += '	 <li class="diary-ctrl mm">' + diaryGetMonthName(mm) + ' ';
	diaryTxt += '	   <ul>';
					for (var mmNum = 1; mmNum <= 12; ++mmNum) {
						var md;
						var nd;
						md = 'mm' + ((mmNum < 10) ? '0'+ mmNum : mmNum);
						nd = "'" + md + "'";
						ctrl = 'onClick="diarySet(' + yy + ', ' + mmNum + ', ' + dd + ')"';
						if (mmNum == parseInt(mm)) {
							diaryTxt += '<li class="diary-sel">' + diaryGetMonthName(mmNum) + '</li>';
						} else {
							diaryTxt += '<li '+ ctrl +'>' + diaryGetMonthName(mmNum) + '</li>';
						}
					}
	diaryTxt += '	   </ul>';
	diaryTxt += '	 </li>';
	diaryTxt += '	 <li class="diary-ctrl yy">' + year + ' ';
	diaryTxt += '	   <ul>';
					for (var yyNum = yyFrom; yyNum <= yyTo; ++yyNum) {
						var yd;
						var sd;
						yd = 'yy' + yyNum;
						sd = "'" + yd + "'";
						ctrl = 'onClick="diarySet(' + yyNum + ', ' + mm + ', ' + dd + ')"';
						if (yyNum == parseInt(yy)) {
							diaryTxt += '<li class="diary-sel">' + yyNum + '</li>';
						} else {
							diaryTxt += '<li '+ ctrl +'>' + yyNum + '</li>';
						}
					}
	diaryTxt += '	   </ul>';
	diaryTxt += '	 </li>';
	//diaryTxt += '	 <li class="diary-btn task" title="' + diaryGetDescription(1) + '" onClick="diaryPostView()"></li>';
	
	diaryTxt += '	 <li class="diary-btn next" onClick="diaryGoUp('+ yy +', ' + mm +')">&raquo;</li>';
	diaryTxt += '	 <li class="diary-btn now" title="' + diaryGetDescription(0) + '" onClick="diaryReset()">&bull;</li>';
	diaryTxt += '  </ul>';
	
	// container
	diaryTxt += '<div id="diary-content">';
	
	var formNow = ((dd < 10) ? '0'+ dd : dd) +'/'+ ((mm < 10) ? '0'+ mm : mm) +'/'+ yy;
	
	// diary
	diaryTxt += '<div id="diary-box">';
	
	// head
	diaryTxt += '<ul class="diary-row hd">';
	for (var ddNum = 0; ddNum <= 6; ++ddNum) {
		diaryTxt += '<li class="diary-cell hd">';
		diaryTxt += diaryGetWeekDay(ddNum);
		diaryTxt += '</li>';
	}
	diaryTxt += '</ul>';
	
	// coordinate
	sel = dd;
	var digit = 1;
	var cell = 1;
	var id;
	var xd;
	var bk ='';
	var ynow = now.getFullYear();
	var ydlt;
		
	// classi
	// weekend out of current month
	var weout="diary-cell we out"
	// weekend inside current month
	var wein="diary-cell we in"
	// weekday out of current month
	var wdout="diary-cell wd out"
	// weekday inside current month
	var wdin="diary-cell wd in"
	// selected day
	var sd="diary-cell sd"
	// day with task
	var mk=" mk"
	
	// calcolo giorni mese precedente e successivo
	var yearPrev;
	var monthPrev;
	var yearNext;
	var monthNext;
	var daysPrev;
	var ddbk;
	var ddnx;
	
	if (mm==1) {
		yearPrev = parseInt(yy)-1;
		monthPrev = 12;
		yearNext = yy;
		monthNext = parseInt(mm)+1;
	} else { 
		if (mm==12) {
			yearPrev = yy;
			monthPrev = 11;
			yearNext = parseInt(yy)+1;
			monthNext = 1;
		} else {
			yearPrev = yy;
			monthPrev = parseInt(mm)-1;
			yearNext = yy;
			monthNext = parseInt(mm)+1;
		}
	}
	
	daysPrev = diaryGetDays(monthPrev,yearPrev);
	ddbk = parseInt(daysPrev)-firstDay+1;
	ddnx = 1;
	
	// diary drow
	// rows
	var rows
	if (Math.ceil((lastDate + firstDay - 1) / 7)<=5) {
		rows=6
	} else {
		rows=Math.ceil((lastDate + firstDay - 1) / 7)
	}
	
	// populate
	for (var row = 1; row <= rows; ++row) {
		diaryTxt += '<ul class="diary-row">';
		for (var col = 1; col <= 7; ++col) {
			if (cell > (row * 7)) {
				break
			} else { if (digit > lastDate) {
						// cells outside current month (after)
						id = yearNext + '' + ((monthNext < 10) ? '0'+ monthNext : monthNext) + '' + ((ddnx < 10) ? '0'+ ddnx : ddnx);
						xd = "'" + id + "'";
						if (cell == 1 | cell == 7 | (cell - 1) % 7 == 0 | cell == row*7) {
							diaryTxt += '<li class="' + weout + '" id="' + id + '" onClick="diarySetOutput('+yearNext+','+monthNext+','+ddnx+')">' + ((ddnx < 10) ? '0'+ ddnx : ddnx) + '</li>';
						} else {
							diaryTxt += '<li class="' + wdout + '" id="' + id + '" onClick="diarySetOutput('+yearNext+','+monthNext+','+ddnx+')">' + ((ddnx < 10) ? '0'+ ddnx : ddnx) + '</li>';
						}
						cell++;
						ddnx++;
					} else { 
						if (cell <= firstDay) {
							// cells outside current month (before)
							id = yearPrev + '' + ((monthPrev < 10) ? '0'+ monthPrev : monthPrev) + '' + ((ddbk < 10) ? '0'+ ddbk : ddbk);
							xd = "'" + id + "'";
							if (cell == 1 | cell == 7 | (cell - 1) % 7 == 0 | cell == row*7) {
								diaryTxt += '<li class="' + weout + '" id="' + id + '" onClick="diarySetOutput('+yearPrev+','+monthPrev+','+ddbk+')">' +  ((ddbk < 10) ? '0'+ ddbk : ddbk) + '</li>';
							} else {
								diaryTxt += '<li class="' + wdout + '" id="' + id + '" onClick="diarySetOutput('+yearPrev+','+monthPrev+','+ddbk+')">' +  ((ddbk < 10) ? '0'+ ddbk : ddbk) + '</li>';
							}
						cell++;
						ddbk++;
						} else {
							if (digit == sel) {
								id = year + '' + ((month < 10) ? '0'+ month : month) + '' + ((digit < 10) ? '0'+ digit : digit);
								diaryTxt += '<li class="' + sd + '" id="' + id + '" onClick="diarySetOutput('+year+','+month+','+digit+')">' + ((digit < 10) ? '0'+ digit : digit) + '</li>';
							} else {
									if (cell == 1 | cell == 7 | (cell - 1) % 7 == 0 | cell == row*7) {
										id = year + '' + ((month < 10) ? '0'+ month : month) + '' + ((digit < 10) ? '0'+ digit : digit);
										xd = "'" + id + "'";
										diaryTxt += '<li class="' + wein + '" id="' + id + '" onClick="diarySetOutput('+year+','+month+','+digit+')">' + ((digit < 10) ? '0'+ digit : digit) + '</li>';
										xd = null;
										id = null;
									} else {
											id = year + '' + ((month < 10) ? '0'+ month : month) + '' + ((digit < 10) ? '0'+ digit : digit);
											xd = "'" + id + "'";
											diaryTxt += '<li class="' + wdin + '" id="' + id + '" onClick="diarySetOutput('+year+','+month+','+digit+')">' + ((digit < 10) ? '0'+ digit : digit) + '</li>';
											xd = null;
											id = null;
									}
								}
						digit++;
						cell++;
						}			
					}
				}
			}
		diaryTxt += '</ul>';
	}
	
	diaryTxt += '</div>';
	diaryTxt += '</div>';

	var obj = document.getElementById(diaryDiv);
	obj.innerHTML = diaryTxt;
	
	if (diaryCrtl==1) {
		diaryPostView();
	}
	
	// crea tasks
	mm = ((mm < 10) ? '0'+ mm : mm) ;
	dd = ((dd < 10) ? '0'+ dd : dd) ;

	//load_task(yy+""+mm+""+dd);	// da inserire in produzione
	
	//diaryTasks(); // da eliminare in produzione
	
	
	// disattivazione selezione testo
	if (navigator.userAgent.indexOf ('MSIE') != -1) {
		obj.onselectstart=function(){return false};
	} else if(navigator.userAgent.indexOf ('Gecko') != -1) {
		obj.style.MozUserSelect = "none";
	} else {
		obj.onmousedown=function(){return false};
	}
}

function diarySetOutput(yy, mm, dd) {

	var output = '';
	output += yy;
	output += ((mm < 10) ? '0'+ mm : mm) ;
	output += ((dd < 10) ? '0'+ dd : dd) ;
	
	if (yy >= yyFrom && yy <= yyTo){
		diarySet(yy, mm, dd);
			
		var str = '';
		str += ((dd < 10) ? '0'+ dd : dd) ;
		str += '%2F';		// simbolo /
		str += ((mm < 10) ? '0'+ mm : mm) ;
		str += '%2F';		// simbolo /
		str += yy;
		
		//	change_date(str, dd);

		location = '/radar_eventi.asp?data_query=' + str;
	}
}

function diaryPostView() {
	var vObj = document.getElementById('diary-post');
	var vBtn = getElementsByClassName('diary-btn task','li',document.getElementById("diary"));
	if(vObj.style.display=='block') {
		vObj.style.display='none';
		vBtn[0].className='diary-btn task';
		diaryCrtl = 0;
	} else {
		vObj.style.display='block';
		vBtn[0].className='diary-btn task on';
		diaryCrtl = 1;
	}
}

function diaryFormView() {
	var vObj = document.getElementById('diary-form');
	var hObj = document.getElementById('diary-list');
	var vBtn = getElementsByClassName('diary-btn form','div',document.getElementById("diary"));
	if(vObj.style.display=='block') {
		vObj.style.display='none';
		hObj.style.display='block';
		vBtn[0].className='diary-btn form';
	} else {
		vObj.style.display='block';
		hObj.style.display='none';
		vBtn[0].className='diary-btn form on';
	}
}

function diaryGetElement(id) {
	var obj = null;
	if (navigator.userAgent.indexOf ('MSIE') != -1) {
		obj = document.getElementById(id);
	} else if(navigator.userAgent.indexOf ('Gecko') != -1) {
		obj = document.all[id];
	} else if(document.getElementById) {
		obj = document.getElementById(id);
	} else if(document.all) {
		obj = document.all[id];
	}
	return obj;
}

function diaryListDelete(ref) {
	alert(ref);
}

function diaryTasks() {

	if (diaryFlag) {

		var task;
		var taskDate;
		var taskDay;
		var taskHead;
		var taskLink;
		var taskTarget;
		var taskCheck;
		var taskTxt;

		if (tasks.length>1) {
		
			task 		= tasks[1].split('|');
			taskDate 	= task[1];
			taskHead 	= task[2];
			taskLink 	= task[3];
			taskCheck 	= taskDate;
			taskDay 	= taskDate.substr(6,2);
			
			taskTxt = '';
			taskTxt +=	taskDay;
			taskTxt += '<ul class="diary-tasks">';
			taskTxt += '<li class="diary-task">';
			if (taskLink=='') {
				taskTxt += '<span>&bull;</span>';
				taskTxt += taskHead;
			} else {
				taskTxt += '<span>&bull;</span>';
				taskTxt += '<a href="' + taskLink + '">';
				taskTxt += taskHead;
				taskTxt += '</a>';
			}

			if (tasks.length==2) {
				taskTarget = document.getElementById(taskCheck);
				taskTarget.className = taskTarget.className + ' mk';
				taskTarget.innerHTML = taskTxt;
			}

			for(t=2; t<tasks.length; t++) {
				task = null
				task = tasks[t].split('|');
				taskDate = task[1];
				taskHead = task[2];
				taskLink = task[3];
				
				if (taskDate==taskCheck) {
					taskTxt += '<br>';
					if (taskLink=='') {
						taskTxt += '<span>&bull;</span>';
						taskTxt += taskHead;
					} else {
						taskTxt += '<span>&bull;</span>';
						taskTxt += '<a href="' + taskLink + '" target="_blank">';
						taskTxt += taskHead;
						taskTxt += '</a>';
					}
				} else {
						taskTxt += '</li>';
						taskTxt += '</ul>';
						if(document.getElementById(taskCheck)!=null) {
							taskTarget = document.getElementById(taskCheck);
							taskTarget.className = taskTarget.className + ' mk';
							taskTarget.innerHTML = taskTxt;
						}
						taskCheck 	= taskDate;
						taskDay 	= taskDate.substr(6,2);
						
						taskTxt = '';
						taskTxt +=	taskDay;
						taskTxt += '<ul class="diary-tasks">';
						taskTxt += '<li class="diary-task">';
						if (taskLink=='') {
							taskTxt += '<span>&bull;</span>';
							taskTxt += taskHead;
						} else {
							taskTxt += '<span>&bull;</span>';
							taskTxt += '<a href="' + taskLink + '" target="_blank">';
							taskTxt += taskHead;
							taskTxt += '</a>';
						}
				}

				if(t==tasks.length-1) {
					taskTxt += '</li>';
					taskTxt += '</ul>';
					if(document.getElementById(taskCheck)!=null) {
						taskTarget = document.getElementById(taskCheck);
						taskTarget.className = taskTarget.className + ' mk';
						taskTarget.innerHTML = taskTxt;
					}
				}
			}
		}
		if (navigator.userAgent.indexOf ('MSIE 7.0') != -1) {
			var s = getElementsByClassName('diary-tasks');
			for (var u=0; u<=s.length-1; ++u) {
				s[u].style.marginLeft='-22px';
				s[u].style.marginTop='19px';
			}
		}
	}
}
