

function legdysplay(thetext){
        if  (tipobj.style.display != "none"){
                tipobj.innerHTML=theText;
                enabletip=true;
                return false;
        }else{
                enabletip=false;
                return true;
        }
}




function updateFromSingle (sender, helper) {
	newDate = new Date (helper.value);
	newDate.setDate(newDate.getDate()+1);
	sender.calendarDate = newDate;
	renderCalendar (sender);

}

function updateFromMultiDay (sender, helper) {

	if (isNaN(helper.value)) {
		helper.value = sender.calendarDate.getDate();
		return false;
	}

	sender.calendarDate.setDate(helper.value);
	renderCalendar (sender);
}

function updateFromMultiMonth (sender, helper) {

	if (isNaN(helper.value)) {
		helper.value = sender.calendarDate.getMonth() -1;
		return false;
	}
	
	sender.calendarDate.setMonth(helper.value-1);
	renderCalendar (sender);
}

function updateFromMultiYear (sender, helper) {

	if (isNaN(helper.value)) {
		helper.value = sender.calendarDate.getFullYear();
		return false;
	}
	
	sender.calendarDate.setFullYear(helper.value);
	renderCalendar (sender);
}

function getFirstCalendarDate (calendar)
{
	return new Date (
		calendar.calendarDate.getFullYear()
		, calendar.calendarDate.getMonth()
		, 1
	);
}

function renderCalendar (calendar)
{

	calHtml1 =  ("<table width=\"100%\"  border=\"0\" cellspacing=\"0\" cellpadding=\"0\" class=\"mese\">");
	calHtml1 += buildHeader(calendar);

	calHtml1 += buildCalendarTable (calendar);
	calHtml1 += ("</table>");

	
	document.getElementById("cal_" + calendar.attachedId + "_display").innerHTML = calHtml1;
}

function scrollMonthBack (calendar)
{
	calendar.calendarDate.setMonth(calendar.calendarDate.getMonth() - 1);
	renderCalendar (calendar);
}

<!-- year back alex -->
function scrollYearBack(calendar){
	calendar.calendarDate.setFullYear(calendar.calendarDate.getFullYear()- 1);
	renderCalendar(calendar);
}

<!-- year forward alex -->
function scrollYearForward(calendar){
	calendar.calendarDate.setFullYear(calendar.calendarDate.getFullYear()+ 1);
	renderCalendar(calendar);
}


<!-- select month alex -->
function selectMonth(calendar,month){
	
	calendar.calendarDate.setFullYear(calendar.calendarDate.getFullYear());
	
	for(i in calendar.monthLabels){
		if(month ==calendar.monthLabels[i]){
			calendar.calendarDate.setMonth(i);
			renderCalendar(calendar);
			
		}
	}
}


function selectDate (calendar, day)
{
	if (!calendar.viewOnly) {
		calendar.calendarDate.setDate(day);
		renderCalendar (calendar);
	}
}

function scrollMonthForward (calendar)
{	
	temp = new Date();
	temp.setDate(calendar.calendarDate.getDate());
	temp.setMonth(calendar.calendarDate.getMonth());
	temp.setFullYear(calendar.calendarDate.getFullYear());
	var month1 = temp.getMonth();
	temp.setMonth(temp.getMonth() + 1);
	var month2 = temp.getMonth();
	if(month2 == ((month1 + 1)%12)){
	calendar.calendarDate.setMonth(calendar.calendarDate.getMonth() + 1);
	}
	else{
	month3 = calendar.calendarDate.getMonth();
	while(calendar.calendarDate.getMonth() != ((month3 +1)%12)){
	calendar.calendarDate.setDate(calendar.calendarDate.getDate() + 1);
	}
	}
	//calendar.calendarDate.setMonth(calendar.calendarDate.getMonth() + 1);
	renderCalendar (calendar);
}



function buildHeader (calendar)
{

	enableLeft = true;
	enableRight = true;
	
	if (calendar.minDate != "--") 
	{
		if (calendar.calendarDate.getFullYear() <= calendar.minDate.getFullYear())
		{
			if (calendar.calendarDate.getMonth() <= calendar.minDate.getMonth())
			{
				enableLeft = false;
			}
		}
	}

	if (calendar.maxDate != "--") 
	{
		if (calendar.calendarDate.getFullYear() >= calendar.maxDate.getFullYear())
		{
			if (calendar.calendarDate.getMonth() >= calendar.maxDate.getMonth())
			{
				enableRight = false;
			}
		}
	}

	
	
	
	calHtml2 = "";
	
	
	//-------------------------- inizio header ----------------------------------	
	
	calHtml2 +=  ("<tr>");
	calHtml2 +=  (
		"<td><a href=# onclick=\"scrollYearBack(" + calendar.name + ")\")"
		+ " >"
		+ ((enableLeft)?calendar.controlLeft:calendar.controlLeftDisabled)
		+ "</a></td>");
	calHtml2 +=  (
		"<td align=\"center\">"
		+ calendar.calendarDate.getFullYear()
		+ "</td>");
	calHtml2 +=  (
		"<td align=\"right\"><a href=# onclick=\"scrollYearForward(" + calendar.name + ")\")"
		+ " >"
		+ ((enableRight)?calendar.controlRight:calendar.controlRightDisabled)
		+ "</a></td>");
	
	calHtml2 += ("</tr><tr>");

	calHtml2 +=  ("<table width=\"100%\"   border=\"0\" cellspacing=\"0\" cellpadding=\"0\" class=\"calendar\">")
	calHtml2 += ("<tr>");
	for(i = 0; i<12; i++){
		if(i == 5){
			if(i == calendar.calendarDate.getMonth()){
			  calHtml2 +=  (
				"<td align=\"left\" class=\"gg\">"
				+ "<a style=\"text-decoration:none\" href=# onclick=\"selectMonth(" + calendar.name + ",'" + calendar.monthLabels[i] +"')\")" 
				+ ">" + calendar.monthLabels[i].toUpperCase()
				+ "</a></td></tr><tr>");
			}else{
				calHtml2 +=  (
				"<td align=\"left\" class=\"gg\">"
				+ "<a style=\"text-decoration:none\" href=# onclick=\"selectMonth(" + calendar.name + ",'" + calendar.monthLabels[i] +"')\")" 
				+ "><font style=\"font-weight:normal\">" + calendar.monthLabels[i]
				+ "</font></a></td></tr><tr>");

			}
		}else{
			if(i == calendar.calendarDate.getMonth()){
		         calHtml2 +=  (
			    "<td align=\"left\" class=\"gg\">"
			    + "<a style=\"text-decoration:none\" href=# onclick=\"selectMonth(" + calendar.name + ",'" + calendar.monthLabels[i] +"')\")" 
			    + ">" + calendar.monthLabels[i].toUpperCase()
			    + "</a></td>");
			}else{
			  calHtml2 +=  (
			    "<td align=\"left\" class=\"gg\">"
			    + "<a style=\"text-decoration:none\" href=# onclick=\"selectMonth(" + calendar.name + ",'" + calendar.monthLabels[i] +"')\")" 
			    + "><font style=\"font-weight:normal\">" + calendar.monthLabels[i]
			    + "</font></a></td>");

			}
		}

	}
	
	calHtml2 += ("</table></tr>");

	
	
	//-------------------------- fine header ----------------------------------
	
	//-------------------------- inizio day labels ----------------------------------
	
	calHtml2 +=  ("<table width=\"100%\"   border=\"0\" cellspacing=\"0\" cellpadding=\"0\" class=\"calendar\"><tr align=\"center\"><td class=\"gg\">&#160;</td>")

	for (i = 0; i < 7; i++) {
		showDay = i + calendar.firstDayOfWeek;
		if (showDay > 6) showDay = showDay - 7;
		calHtml2 +=  (
			"<td align=\"left\" class=\"gg\">"
			+ calendar.dayLabels[showDay]
			+ "</td>");
	}

	calHtml2 += ("<td class=\"gg\">&#160;</td></tr>");
	
		//-------------------------- fine day labels ----------------------------------
	
	
	return calHtml2
}



function RenderDayDisabled (calendar, currentDate)
{
	calHtml += ('<td align=\"center\">');
	//calHtml += (currentDate.getDate());
	calHtml += ("&#160;");
	calHtml += ("</td>");
}

function RenderDayEnabled (calendar, currentDate, dayStyle)
{
	currentDayStyle = dayStyle;
	calHtml += ("<td align=\"center\" class=" + dayStyle + ">");
	calHtml += (currentDate.getDate());
	calHtml += ("</td>");
}

function RenderDayEvent (calendar, currentDate, dayStyle, eventDate, eventTitle, color, startTime, endTime,img)
{	
       
	currentDayStyle = dayStyle;
       if (color=="#00FF00") {
       
	calHtml += ("<td align=\"center\" class=\"corp pointer\" style=\"background-image:url('/en_IT/browser/static/images/angolo_silent.gif'); background-position:right; background-repeat:no-repeat; \" >"); // aici sunt zilele cu evenimente
       }
       else { 
           // if (img != 1) {
                          calHtml += ("<td align=\"center\" class=\"corp pointer\" style=\"COLOR :#FFFFFF;BACKGROUND: " + color + "\" >"); // aici sunt zilele cu evenimente
                        // }
                        //  else
                         // {
                   // calHtml += ("<td align=\"center\" class=\"corp pointer\" style=\"COLOR :#FFFFFF;background-image:url('/en_IT/browser/static/images/angolo_silent.gif'); background-position:right; background-repeat:no-repeat;background-color: "+color+"\" >"); // aici sunt zilele cu evenimente
                     //   }

	}
       var titlu=eventTitle.replace("'","&#8217;");
      
       if (color=="#C0C0C0"){
                     
              	calHtml += ("<span class=\"" + dayStyle + "\" onclick=\"javascript:" + calendar.name + ".selectEvent('" + eventDate +"')\"; onMouseover=\"ddrivetip(\'" + titlu+ "' +\'" +'\\n' +"')\"; onMouseout=\"hideddrivetip()\">");
                      }
       else {
		if(img==2 || startTime==null || endTime==null || (startTime=='00:00' && endTime=='00:00' )){
						calHtml += ("<span class=\"" + dayStyle + "\" onclick=\"javascript:" + calendar.name + ".selectEvent('" + eventDate +"')\"; onMouseover=\"ddrivetip(\'" + titlu+ "' +\'" +'\\n'+"')\"; onMouseout=\"hideddrivetip()\">");
		}else{
			calHtml += ("<span class=\"" + dayStyle + "\" onclick=\"javascript:" + calendar.name + ".selectEvent('" + eventDate +"')\"; onMouseover=\"ddrivetip(\'" + titlu+ "' +\'" +'\\n'+ startTime +'-'+ endTime +"')\"; onMouseout=\"hideddrivetip()\">");
		}
       	//showtips
        }	
	//calHtml += ("<span class=\"" + dayStyle + "\" onclick=\"hideddrivetip(); " + calendar.name + ".selectEvent('" + eventDate + "')\">");
	
	calHtml += (currentDate.getDate());
	calHtml += ("</span>");
	calHtml += ("</td>");

}

function buildCalendarTable (calendar)
{
	currentDate = getFirstCalendarDate(calendar);
	odd = 0;
	while (currentDate.getDay() != calendar.firstDayOfWeek)
	{
		currentDate.setDate(currentDate.getDate() - 1);
	}
	calHtml = "";
	do
	{
		odd += 1;

		calHtml +=  ("<tr><td>&#160;</td>")
		
		for (i = 0;i < 7;i++)
		{
			currentDayStyle = calendar.dayStyle;
			currentEventStyle = calendar.commonDayStyle;
			currentDateString = currentDate.getFullYear() + "/" + (currentDate.getMonth()+1) + "/" + currentDate.getDate();
			
			if (currentDate < calendar.minDate) 
			{
				RenderDayDisabled (calendar, currentDate);
			} 
			else if (currentDate > calendar.maxDate) 
			{
				RenderDayDisabled (calendar, currentDate);
			} 
			else if (currentDate.getMonth() != calendar.calendarDate.getMonth())
			{
				RenderDayDisabled (calendar, currentDate);
			}
			else if (currentDate.getFullYear() + "/" + (currentDate.getMonth()+1) + "/" + currentDate.getDate() == calendar.today)
			{
			    if ((currentDate.getDay() == 0) || (currentDate.getDay() == 6))
				{
					if (calendar.allowWeekends == true)
					{
					var check1 = true;
						//RenderDayEnabled (calendar, currentDate, "elementoToday");
						for (j=0; j < calendar.eventDates.length; j++)	{
							if (calendar.eventDates[j][1] == currentDateString) 
							{
							style = calendar.eventDayStyle;
							check1 = false;
						       RenderDayEvent (calendar, currentDate, style, calendar.eventDates[j][1], calendar.eventDates[j][2], calendar.eventDates[j][3],calendar.eventDates[j][4],calendar.eventDates[j][5],calendar.eventDates[j][6]);
							}
							
						}
						if (check1){
							today2 = new Date(Date.parse(calendar.today));
							RenderDayEnabled (calendar, today2, "elementoToday");
							}	
					} 
					else 
					{						
						RenderDayDisabled (calendar, currentDate);	
						month = calendar.calendarDate.getMonth();
						temp = new Date();
						temp.setDate(calendar.calendarDate.getDate());
						temp.setMonth(calendar.calendarDate.getMonth());
						temp.setFullYear(calendar.calendarDate.getFullYear());
						temp.setHours(0);
						temp.setMinutes(0);
						temp.setSeconds(0);
						temp.setMilliseconds(0);
						temp.setDate(temp.getDate()+1);
						if (month != temp.getMonth())
						{	
							renderCalendar(calendar);
						}
					}
				} else {
					if (calendar.allowWeekdays == true)
					{	
						var check = true;
						//RenderDayEnabled (calendar, currentDate, "elementoToday");
						for (j=0; j < calendar.eventDates.length; j++){
							if (calendar.eventDates[j][1] == currentDateString) 
							{
							check = false;
							style =  calendar.eventDayStyle;
							RenderDayEvent (calendar, currentDate, style, calendar.eventDates[j][1], calendar.eventDates[j][2], calendar.eventDates[j][3],calendar.eventDates[j][4],calendar.eventDates[j][5],calendar.eventDates[j][6]);
							}
						}
							if(check){
							today1 = new Date(Date.parse(calendar.today));
							RenderDayEnabled (calendar, today1, "elementoToday");
							}
					} 
					else 
					{
						RenderDayDisabled (calendar, currentDate);	
						month = calendar.calendarDate.getMonth();
						temp = new Date();
						temp.setDate(calendar.calendarDate.getDate());
						temp.setMonth(calendar.calendarDate.getMonth());
						temp.setFullYear(calendar.calendarDate.getFullYear());
						temp.setHours(0);
						temp.setMinutes(0);
						temp.setSeconds(0);
						temp.setMilliseconds(0);
						temp.setDate(temp.getDate()+1);
						if (month != temp.getMonth())
						{
							renderCalendar(calendar);
						}
						
					}
					
				} 
			}
			else if ((currentDate.getDay() == 0) || (currentDate.getDay() == 6))
			{
				if (calendar.allowWeekends == true)
				{
				
					style = calendar.holidayDayStyle
					
					for (j=0; j < calendar.eventDates.length; j++)
					{
						if (calendar.eventDates[j][1] == currentDateString) 
						{
							style = calendar.eventDayStyle;
							RenderDayEvent (calendar, currentDate, style, calendar.eventDates[j][1], calendar.eventDates[j][2], calendar.eventDates[j][3],calendar.eventDates[j][4],calendar.eventDates[j][5],calendar.eventDates[j][6]);
						}
					}
					
					if (style == calendar.holidayDayStyle)
					{
						RenderDayEnabled (calendar, currentDate, "elemento");
					}
				} 
				else 
				{
					RenderDayDisabled (calendar, currentDate);	
				}
			} else {
				if (calendar.allowWeekdays == true)
				{
					style = calendar.commonDayStyle

					for (j=0; j < calendar.eventDates.length; j++)
					{
						if (calendar.eventDates[j][1] == currentDateString) 
						{
							style = calendar.eventDayStyle;
							RenderDayEvent (calendar, currentDate, style, calendar.eventDates[j][1], calendar.eventDates[j][2], calendar.eventDates[j][3],calendar.eventDates[j][4],calendar.eventDates[j][5],calendar.eventDates[j][6]);
						}
					}

					if (style == calendar.commonDayStyle)
					{
						RenderDayEnabled (calendar, currentDate, "elemento");
					}
				} 
				else 
				{
					RenderDayDisabled (calendar, currentDate);	
				}
			}

			currentDate.setDate(currentDate.getDate() + 1);	
		}
		
		calHtml += ("<td>&#160;</td></tr>");
		

	} while (currentDate.getMonth() == calendar.calendarDate.getMonth());
	
	
	calHtml +=  ("</td></tr></table></td></tr>");
	return calHtml;
}





				
		
function addScript(url){
					  
	str =   url;

	var obj=new JSONscriptRequest(str);
			
	obj.buildScriptTag(); // Build the script tag
						
	obj.addScriptTag(); // Execute (add) the script tag
						
}
			
					


var ns4 = (document.layers); 
var ie4 = (document.all && !document.getElementById); 
var ie5 = (document.all && document.getElementById); 
var ns6 = (!document.all && document.getElementById); 



function showLegend(element,  url){
	myLink=MM_findObj('linkLegenda');
	//tipobj=MM_findObj('legenda');
		
		tipobj1=document.all? document.all[element] : document.getElementById? document.getElementById(element) : ""
	
			
	if(ns4){ 
tipobj1=document.layers[element]; 

} 
if (ie4){ 
tipobj1=document.all[element]; 

} 
if(ie5 || ns6){ 
tipobj1=document.getElementById(element)} 
	
	
	  //tipobj=document.all? document.all[element] : document.getElementById? document.getElementById(element) : ""
	
	

	
		if (tipobj1.style.display!="block"){
			tipobj1.style.display="block";
			myLink.className = "linkGrigio10_arrowDw";
			addScript(url);
		}
		else{
			tipobj1.style.display="none";
			
			tipobj1.innerHTML = "";
			myLink.className = "linkGrigio10_arrowDx";
		}
		
	}
	
	

				
						
					
	

// $Log: calendar.js,v $
// Revision 1.1  2005/02/15 21:54:32  Karl Agius
// Initial release
//
