

/**
 *  Cisco.com Calendar Component (CEC VERSION)
 *  calendar.js
 *  $Revision: 1.3cec $
 */

/**
 * formats a JavaScript date object to CEC date string standards
 */
var cecVersion="http://wwwin.cisco.com/cec/framework/2.2.4";
function formatDate( dateObject ) {
	var monthNames = new Array ("JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC");
	var thedate;
	var theday = dateObject.getDate();
	if ( theday < 10 ) {
		theday = "0"+theday;
	}
	/*alert(" OBJECT ===> " + dateObject);
	alert("THE DATE" + theday);
	alert("YEAR" + dateObject.getFullYear());
	alert("MONTH" + monthNames[dateObject.getMonth()]);*/
	thedate = theday+'-'+monthNames[dateObject.getMonth()]+'-'+dateObject.getFullYear();
//	alert(" THE DATE FIALLY !!" + thedate);
    return thedate;
}
 
/**
 * opens a calendar at the specified screen coordinates
 * NOT A SUPPORTED API
 */ 
function openCalendarAtPosition(context,xpos, ypos, contextString ) {
	var cec_calstyle = "<style> \n";
		cec_calstyle += ".calendarA{position:absolute;top:26px;left:7px;} \n";
		cec_calstyle += "</style> \n";
	var inc_js_cisco_detect = "<script language='JavaScript' src='cisco_detect.js'></script>  \n";
	var cal_win_vars = " var month=''; \n var day=''; \n var year=''; \n var now=''; \n var monthNames = new Array ('January','February','March','April','May','June','July','August','September','October','November','December'); \n";	
	var contextstr = contextString;
	var fnc_setToday = " function setToday() { now   = new Date(); day   = now.getDate(); month = now.getMonth(); year  = now.getYear(); if (year < 2000) { year = year + 1900; } this.focusDay = day; displayCalendar(month, year);}  ";
	var fnc_setPreviousMonth = " function setPreviousMonth() {day   = 0; if (month == 0) {month = 11;if (year > 1000) {year--;}} else {month--; } displayCalendar(month, year);} ";
	var fnc_setNextMonth = " function setNextMonth() {day   = 0; if (month == 11) {month = 0; year++;} else { month++; } displayCalendar(month, year);} ";
	var fnc_setPreviousYear = " function setPreviousYear() {year--; displayCalendar(month, year);} ";
	var fnc_setNextYear = " function setNextYear() {year++; displayCalendar(month, year);} ";
	var fnc_getDaysInMonth = " function getDaysInMonth(month,year)  {var days; if (month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12)  days=31; else if (month==4 || month==6 || month==9 || month==11) days=30; else if (month==2)  {if (isLeapYear(year)) { days=29; } else { days=28; } } return (days); } ";
	var fnc_isLeapYear = " function isLeapYear (Year) {if (((Year % 4)==0) && ((Year % 100)!=0) || ((Year % 400)==0)) {return (true);} else { return (false); } } ";
	var fnc_displayCalendar = " function displayCalendar(month, year) { \n";
		fnc_displayCalendar += " var thisDay; month = parseInt(month); year = parseInt(year); var i = 0; var days = getDaysInMonth(month+1,year); var firstOfMonth = new Date (year, month, 1); var startingPos = firstOfMonth.getDay(); days += startingPos; \n";
		fnc_displayCalendar += " var myValue = ''; \n";
		fnc_displayCalendar += " myValue  = '<table bgcolor=\"#000066\" width=\"177\" cellspacing=\"1\" cellpadding=\"0\" border=\"0\"><tr><td>'; \n";
		fnc_displayCalendar += " myValue += '<table width=\"100%\" cellpadding=\"4\" cellspacing=\"1\" border=\"0\"><tr valign=\"top\"><td bgcolor=\"#336699\" align=\"center\" width=\"100%\">'; \n";
		fnc_displayCalendar += " myValue += '<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">'; \n"
		fnc_displayCalendar += " myValue += '<td align=\"left\" class=\"modulecontent\"><img src=\"images/s.gif\" width=\"5\" height=\"1\" alt=\"\" border=\"0\"><a href=\"javascript:setPreviousYear()\" class=\"modulecontentrev\">&lt;&lt;</a>&nbsp;&nbsp;<a href=\"javascript:setPreviousMonth()\" class=\"modulecontentrev\">&lt;</a><br><img src=\"images/s.gif\" width=\"24\" height=\"1\" alt=\"\" border=\"0\"></td>'; \n";
		fnc_displayCalendar += " myValue += '<td align=\"center\"><span class=\"moduletitlerev\">'+monthNames[month]+' '+year+'</span></td>'; \n";
		fnc_displayCalendar += " myValue += '<td align=\"right\" class=\"modulecontent\"><a href=\"javascript:setNextMonth()\" class=\"modulecontentrev\">&gt;</a>&nbsp;&nbsp;<a href=\"javascript:setNextYear()\" class=\"modulecontentrev\">&gt;&gt;</a><img src=\"images/s.gif\" width=\"5\" height=\"1\" alt=\"\" border=\"0\"><br><img src=\"images/s.gif\" width=\"24\" height=\"1\" alt=\"\" border=\"0\"></td></table></td></tr>'; ";
		fnc_displayCalendar += " myValue += '<tr bgcolor=\"#ffffff\"><td>'; \n";
		fnc_displayCalendar += " myValue += '<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\"><tr><td class=\"modulecontentbold\" align=\"center\" width=\"14%\">Su</td><td class=\"modulecontentbold\" align=\"center\" width=\"14%\">Mo</td><td class=\"modulecontentbold\" align=\"center\" width=\"14%\">Tu</td><td class=\"modulecontentbold\" align=\"center\" width=\"14%\">We</td><td class=\"modulecontentbold\" align=\"center\" width=\"14%\">Th</td><td class=\"modulecontentbold\" align=\"center\" width=\"14%\">Fr</td><td class=\"modulecontentbold\" align=\"center\" width=\"14%\">Sa</td></tr>'; \n";
		fnc_displayCalendar += " myValue += '<tr bgcolor=\"#ffffff\"><td colspan=\"7\" height=\"6\"><img src=\"o.com/cec/common/i/s.gif\" alt=\"\" border=\"0\" height=\"6\" width=\"1\"></td>'; \n";
		fnc_displayCalendar += " myValue += '<tr bgcolor=\"#ffffff\">'; \n";
		fnc_displayCalendar += " for (i = 0; i < startingPos; i++) {myValue += '<td></td>';} \n";
		fnc_displayCalendar += " for (i = startingPos; i < days; i++) {if ( i%7 == 0 ) {myValue += '<tr bgcolor=\"#ffffff\" height=\"17\">';} \n";
		fnc_displayCalendar += " myValue += '<td align=\"center\">'; \n";
		fnc_displayCalendar += " thisDay = i-startingPos+1; \n";
		fnc_displayCalendar += " myValue += '<a href=\"javascript:opener.assignDate( new Date(\\''+year+'\\',\\''+month+'\\',\\''+thisDay+'\\'), \\'"+contextstr+"\\' );window.close()\" class=\"modulelink\">'+thisDay+'</a></td>'; \n";
		fnc_displayCalendar += " if ( i%7 == 6 ) {myValue += '</td></tr>';} } \n";
		fnc_displayCalendar += " myValue += '</tr></table></td></tr></table></td></tr></table>'; \n";
		fnc_displayCalendar += " if (document.all) { document.all.calendarA.innerHTML = myValue;} else if (document.getElementById) {document.getElementById('calendarA').innerHTML = myValue;} else { document.layers.calendarA.document.open(); document.layers.calendarA.document.writeln(myValue); document.layers.calendarA.document.close(); } \n";
		fnc_displayCalendar += fnc_getDaysInMonth +"\n";
		fnc_displayCalendar += fnc_isLeapYear + "\n";
		fnc_displayCalendar += " } ";

	var calwindow = window.open("", "cdccalendar", "toolbar=no,status=yes,top="+ypos+",left="+xpos+",outerWidth=203,outerHeight=236,width=190,height=183,scrollbars=auto,resizable=yes,menubar=no,locationbar=no");
	  calwindow.document.write("<html><head><title>Cisco Systems</title> \n");
	  calwindow.document.write("<meta http-equiv=\"Pragma\" content=\"no-cache\">\n<meta http-equiv=\"Expires\" content=\"-1\">\n");
	  calwindow.document.write(cec_calstyle);
	  calwindow.document.write("<link rel='Stylesheet' href='"+cecVersion+"/c/cec.css' type='text/css'>");
	  calwindow.document.write("<link rel='Stylesheet' href='"+cecVersion+"/c/cec_base.css' type='text/css'>");
	  calwindow.document.write("<script language='JavaScript'> \n");
	  calwindow.document.write(cal_win_vars +"\n");
	  calwindow.document.write(fnc_setToday +"\n");
	  calwindow.document.write(fnc_setPreviousMonth +"\n");
	  calwindow.document.write(fnc_setNextMonth +"\n");
	  calwindow.document.write(fnc_setPreviousYear +"\n");
	  calwindow.document.write(fnc_setNextYear +"\n");
	  calwindow.document.write(fnc_displayCalendar +"\n");
	  calwindow.document.write(" </script> \n");
	  
	  calwindow.document.write("</head><body bgcolor='ffffff' marginheight='0' marginwidth='0' topmargin='0' leftmargin='0' onLoad='setToday()'> \n");
	  calwindow.document.write(" <table cellspacing='0' cellpadding='0' border='0'>  \n");
	  calwindow.document.write("  <tr> \n");
	  calwindow.document.write("   <td width='13'><img src='images/s.gif' alt='' height='1' width='13' border='0'></td> \n");
	  calwindow.document.write("   <td valign='top' nowrap><a href='javascript:window.close();' class='smalltext'>Close Window</a></td> \n");
	  //calwindow.document.write("   <td background=\"images/vertlines_rightmask.gif\" align=\"left\" valign=\"top\"><img src=\"images/vertlines_left.gif\" alt=\"\" vspace=\"0\" hspace=\"0\" border=\"0\"><img src=\"images/s.gif\" alt=\"\" height=\"8\" width=\"150\" border=\"0\"></td> \n");
	  calwindow.document.write("  </tr> \n");
	  calwindow.document.write(" </table>  \n");
	  calwindow.document.write(" <p><div id='calendarA' class='calendarA'></div></p>  \n");
	  calwindow.document.write("</body></html>");
   
	calwindow.document.close()
	calwindow.focus();
}

/**
 * opens a calendar at the current mouse position
 */
function openCalendarAtMousePosition(context,e, contextString ) {
	// get the current mouse position  
	var mouseY = 0;
	var mouseX = 0;
	if( document.all ) {
		mouseY = event.screenY;
		mouseX = event.screenX;
	} else if( document.getElementById ) {
		mouseY = e.screenY;
		mouseX = e.screenX;
	} else if( document.layers ) {
		mouseY = e.screenY;
		mouseX = e.screenX;
	}
	openCalendarAtPosition( context,mouseX, mouseY, contextString );
}
 
/**
 * opens a calendar at the default position
 */
function openCalendar( contextString ) {
	
	openCalendarAtPosition( 290, 90, contextString );
}

/**
 * prints the proper code for a linked calendar widget appropriate for
 * the browser.
 */
function writeCalendarWidget(fieldName) {
  // We want to use "<img onClick...", but this does not work wit
  // Netscape 4.76.
  var bName = navigator.appName;
  var bVer = parseInt(navigator.appVersion);
  if (bName == "Netscape" && bVer < 5) {
    document.write("<a name='calendar_field_" + fieldName + "' href='#calendar_field_" + fieldName + "' onclick='openCalendarAtMousePosition(event,\"" + fieldName + "\");'><img src='http://wwwin.cisco.com/cec/common/i/icon_calendar.gif' height='16' width='16' alt='Select Date' border='0' /></a>");
  }
  // Just use img onClick if possible.
  else {
    document.write("<input type='image' src='images/icon_calendar.gif' height='16' width='16' alt='Select Date' onclick='openCalendarAtMousePosition(event,\"" + fieldName + "\"); return(false);' border='0' />");
  }
}


/**
 * Assigns the date to the appropriate field.
 */ 
 function assignDate(dateObject,contextStr) {
  		var thefield = eval("document.FBI_Questionnaire."+contextStr);
		thefield = document.getElementById(contextStr);
		thefield.value=formatDate(dateObject);
	}


