_mcafee=true; 
_gBeginDate=[2005,1,1];


// function fOnChange(y,m,d,e) {}
// function fAfterSelected(y,m,d,e) {}
// function fOnDrag(y,m,d,aStat,e) {}
// function fOnResize() {}
// function fOnWeekClick(year, weekNo) {}
// function fOnDoWClick(year, month, dow) {}
// function fIsSelected(y,m,d) {
//		return gdSelect[2]==d&&gdSelect[1]==m&&gdSelect[0]==y;
// }
// function fParseInput(str) {}
// function fFormatInput(y,m,d) {}


////////////////// Calendar fonload Handler ///////////////////////
// It's triggered when the calendar engine is fully loaded by the browser.
// NOTE: DO NOT define this handler unless you really need to use it.
////////////////////////////////////////////////////////////////////
function fonload() {
	fInitLayer();
}


// ====== predefined utility functions for use with agendas. ========

// load an url in the window/frame designated by "framename".
function popup(url,framename) {	
	var w=parent.open(url,framename,"top=200,left=200,width=400,height=200,scrollbars=1,resizable=1");
	if (w&&url.split(":")[0]=="mailto") w.close();
	else if (w&&!framename) w.focus();
}

// ====== Following are self-defined and/or custom-built functions! =======

gsBottom=(NN4?"":"<DIV class='BottomDiv'>")+"<A class='BottomAnchor' href='javascript:void(0)' onclick='if(this.blur)this.blur();fClearSelected();return false;' onmouseover='return true;'>Reset</A>"+(NN4?"":"</DIV>");


var _startc,_endc;
function fStartPop(startc,endc,validoda,validoal,minimonotti,dw0,dw1,dw2,dw3,dw4,dw5,dw6) {

  if (!validoda){
	 gBegin=gToday;
	        }
  else {
	gBegin=fParseInput(validoda)
	if (gBegin < gToday) {gBegin=gToday;}
       }
  if (!validoal) gEnd=gEnd; else gEnd=fParseInput(validoal)
  if (!minimonotti) minimonotti=1;
  if (!dw0) _dw0=0; else _dw0=dw0;
  if (!dw1) _dw1=0; else _dw1=dw1;
  if (!dw2) _dw2=0; else _dw2=dw2;
  if (!dw3) _dw3=0; else _dw3=dw3;
  if (!dw4) _dw4=0; else _dw4=dw4;
  if (!dw5) _dw5=0; else _dw5=dw5;
  if (!dw6) _dw6=0; else _dw6=dw6;

  _startc=startc;
  _endc=endc;

  var sd=fParseInput(endc.value); 
  if (!sd) sd=gEnd;

  var dt = new Date(sd[0], sd[1]-1, sd[2]- minimonotti);
  sd = [dt.getFullYear(), dt.getMonth()+1, dt.getDate()];

  fPopCalendar(startc, [gBegin,sd,sd]);
}

function fEndPop(startc,endc,validoda,validoal,minimonotti,dw0,dw1,dw2,dw3,dw4,dw5,dw6) {

  if (!validoda){
	 gBegin=gToday;
	        }
  else {
	gBegin=fParseInput(validoda)
	if (gBegin < gToday) {gBegin=gToday;}
       }
  if (!validoal) gEnd=gEnd; else gEnd=fParseInput(validoal)
  if (!minimonotti) minimonotti=1;
  if (!dw0) _dw0=0; else _dw0=dw0;
  if (!dw1) _dw1=0; else _dw1=dw1;
  if (!dw2) _dw2=0; else _dw2=dw2;
  if (!dw3) _dw3=0; else _dw3=dw3;
  if (!dw4) _dw4=0; else _dw4=dw4;
  if (!dw5) _dw5=0; else _dw5=dw5;
  if (!dw6) _dw6=0; else _dw6=dw6;

  _startc=startc;
  _endc=endc;

  var sd=fParseInput(startc.value);
  if (!sd) sd=gBegin; 

  var dt = new Date(sd[0], sd[1]-1, sd[2]+ minimonotti); 
  var ed = [dt.getFullYear(), dt.getMonth()+1, dt.getDate()];

  fPopCalendar(endc, [ed,gEnd,ed]);
}
function fStartPopLightFromTo(startc,endc) {

 gBegin=_gBeginDate;

  _startc=startc;
  _endc=endc;

  var sd=fParseInput(endc.value); 
  if (!sd) sd=gEnd;

  var dt = new Date(sd[0], sd[1]-1, sd[2]- 1);	// minimonotti = 1
  sd = [dt.getFullYear(), dt.getMonth()+1, dt.getDate()];

  fPopCalendar(startc, [gBegin,sd,sd]);
}
function fEndPopLightFromTo(startc,endc) {

// gBegin=_gBeginDate;

  _startc=startc;
  _endc=endc;

  var sd=fParseInput(startc.value);
  if (!sd) sd=gBegin; 

  var dt = new Date(sd[0], sd[1]-1, sd[2]+ 1); // minimonotti = 1
  var ed = [dt.getFullYear(), dt.getMonth()+1, dt.getDate()];

  fPopCalendar(endc, [ed,gEnd,ed]);
}

function fStartPopLight(startc,endc) {

  _startc=startc;
  _endc=endc;

  var sd=fParseInput(endc.value); 
  if (!sd) sd=gEnd;

  var dt = new Date(sd[0], sd[1]-1, sd[2]- 1);	// minimonotti = 1
  sd = [dt.getFullYear(), dt.getMonth()+1, dt.getDate()];

  fPopCalendar(startc, [gBegin,sd,sd]);
}
function fEndPopLight(startc,endc) {

  _startc=startc;
  _endc=endc;

  var sd=fParseInput(startc.value);
  if (!sd) sd=gBegin; 

  var dt = new Date(sd[0], sd[1]-1, sd[2]+ 1); // minimonotti = 1
  var ed = [dt.getFullYear(), dt.getMonth()+1, dt.getDate()];

  fPopCalendar(endc, [ed,gEnd,ed]);
}
function fClearSelected() { // clear the date field and reset the dynamic range.
  _startc.value="";
  _endc.value="";
  fUpdSelect(0,0,0);
  gRange=[gBegin,gEnd];
  gdBegin=new Date(gBegin[0],gBegin[1]-1,gBegin[2]);
  gdEnd=new Date(gEnd[0],gEnd[1]-1,gEnd[2]);
  fRepaint();
}

// ======= the following plugin is coded for the artificial internal dropdown seletors ========
// You may change the left,top in the fPopMenu() to adjust the popup position.
// Other Settings
var _highlite_background="black";	// highlight background color
var _highlite_fontColor="white";	// highlight font color
var _pop_length=7;	// how many months to be shown
var _pop_width=80;	// pixels of the popup width

// Override the gsCalTitle option to popup a date-selector layer. Remember to keep it as an expression or a function returning a string.
gsCalTitle="fGetCalTitle()";
function fGetCalTitle() {
	return "&nbsp;<a class='PopAnchor' href='javascript:void(0);' onclick='if(this.blur)this.blur();fPopMenu(this,event);return false;'>"+gMonths[gCurMonth[1]-1]+(NN4?" ":"</a> <a id='yearAnchor' class='PopAnchor' href='javascript:void(0)' onclick='fToggleLayer(1,true);fGetById(document,\"yearInput\").focus();return false;'>")+gCurMonth[0]+"</a>";
}
if(NN4)_nn4_css.push("YearBox"); // work around NN4 bug
giFreeDiv=2;
function fInitLayer() { // gets called from within fonload()
	if (NN4) return;
	var lyr=fGetById(document,"freeDiv1");
	lyr.style.top=(SA?2:IE&&!MAC?0:6)+"px"; lyr.style.left=(SA?63:65)+"px"; lyr.style.border=0;
	fDrawLayer(1,"<input class='YearBox' id='yearInput' value='' maxlength=4 size=4 onkeyup='if(this.value.length==4){if(!isNaN(this.value))fSetCal(this.value,gCurMonth[1],0,true,event);this.select();this.blur()}' onblur='fToggleLayer(1,false);if(SA)this.blur()' onfocus='this.value=gCurMonth[0];this.select()' onclick='this.select()' onselectstart='event.cancelBubble=true'>");
}


function fPopMenu(dc,e) {
	var lyr=NN4?document.freeDiv0:fGetById(document,"freeDiv0");
	var bv=NN4?lyr.visibility=="show":lyr.style.visibility=="visible";
	if (bv) { fToggleLayer(0,false); return; }
	fSetDPop(gCurMonth[0],gCurMonth[1]);
	if (NN4) with (lyr) {
		left=25;
		top=22;
	} else with (lyr.style) {
		left=25+"px";
		top=4+"px";
	}
	fToggleLayer(0,true);
}

var _tmid=null;
function fSetDPop(y,m) {
	var mi=_pop_length;
	var wd=_pop_width;
	var sME=NN4||IE4?"":" onmouseover='fToggleColor(this,0)' onmouseout='fToggleColor(this,1)' ";	// menu-item focus background-color
	var padstr="&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
	var cm=fCalibrate(y,m);
	var a=[NN4||IE4||IE&&MAC?"<table border=1 cellspacing=0 cellpadding=0><tr><td>":"","<div onmouseover='clearTimeout(_tmid)' onmouseout='_tmid=setTimeout(\"fToggleLayer(0,false)\",100)'><table class='PopMenu' border=0 cellspacing=0 cellpadding=0>"];
	if(!fBfRange(cm[0],cm[1]))a.push("<tr><td align='center' class='PopMenuItem' nowrap width=",wd,sME," onclick='fSetDPop(",cm[0],",",cm[1]-mi,")'><a class='PopMenuItem' href='javascript:void(0)' onclick='if(NN4)fSetDPop(",cm[0],",",cm[1]-mi,");return false;'>",padstr,"-",padstr,"</a></td></tr>");
	for (var i=0;i<mi;i++) {
		var lm=fCalibrate(cm[0],cm[1]+i);
		if (!fIsOutRange(lm[0],lm[1]))
			a.push("<tr><td align='center' class='PopMenuItem' nowrap width=",wd,sME," onclick='fToggleLayer(0,false);fSetCal(",lm[0],",",lm[1],",0,true,event);'><a class='PopMenuItem' href='javascript:void(0)' onclick='if(NN4)fSetCal(",lm[0],",",lm[1],",0,true,event);return false;'>",gMonths[lm[1]-1]," ",lm[0],"</a></td></tr>");
	}
	if(!fAfRange(lm[0],lm[1]))a.push("<tr><td align='center' class='PopMenuItem' nowrap width=",wd,sME," onclick='fSetDPop(",cm[0],",",cm[1]+mi,")'><a class='PopMenuItem' href='javascript:void(0)' onclick='if(NN4)fSetDPop(",cm[0],",",cm[1]+mi,");return false;'>",padstr,"+",padstr,"</a></td></tr>")
	a.push("</table></div>",NN4||IE4||IE&&MAC?"</td></tr></table>":"");
	fDrawLayer(0,a.join(''));
}

var _cPair=[];
function fToggleColor(obj,n) {
	if (NN4||IE4) return;
	if (n==0) { // mouseover
		_cPair[0]=obj.style.backgroundColor;
		obj.style.backgroundColor=_highlite_background;
		_cPair[1]=obj.firstChild.style.color;
		obj.firstChild.style.color=_highlite_fontColor;
	} else {
		obj.style.backgroundColor=_cPair[0];
		obj.firstChild.style.color=_cPair[1];
	}
}

function fToggleLayer(id,bShow) {
	var lyr=NN4?eval("document.freeDiv"+id):fGetById(document,"freeDiv"+id);
	if (NN4) lyr.visibility=bShow?"show":"hide";
	else lyr.style.visibility=bShow?"visible":"hidden";
}

function fDrawLayer(id,html) {
	var lyr=NN4?eval("document.freeDiv"+id):fGetById(document,"freeDiv"+id);
	if (IE4||IE&&MAC) lyr.style.border="0px";
	if (NN4) with (lyr.document) {
		clear(); open();
		write(html);
		close();
	} else {
		lyr.innerHTML=html+"\n";
	}
}


// ======= end of dropdown plugin ========
