1
if(window.loadDependencies)
3
Array('js/ajaxRequestModule.js',
5
'js/timesheetScripts.js',
6
'yui/build/yahoo-dom-event/yahoo-dom-event.js',
7
'yui/build/calendar/calendar-min.js'
10
alert("Some dependencies could not be loaded!");
12
var GDatePicker = null;//the date picker used for dates
13
var currentFriday = null;
15
function onDateInput(event){
17
if(GDatePicker === null){
18
//initializing the date picker
19
var PickerDiv = document.createElement("div");
20
PickerDiv.id = 'datepicker';
21
PickerDiv.style.position = 'absolute';
22
var body = document.getElementsByTagName("body")[0];
23
body.appendChild(PickerDiv);
25
monthFormat: YAHOO.widget.Calendar.LONG
27
GDatePicker = new YAHOO.widget.Calendar( 'datepickerid', 'datepicker',{navigator: navConfig, close: true, start_weekday: 6, show_week_header: false});
28
//setting the event handlers accordingly
29
GDatePicker.selectEvent.subscribe(function (eventType, dateArr) {
30
var dateInput = document.getElementById('friday');
31
if ( currentFriday == null) {
32
currentFriday = ISOStringToDate(dateInput.value);
33
if (currentFriday == null) {
34
currentFriday = new Date();
37
if (dateInput !== null) {
38
var strDate = dateArr[0][0];
39
var year = parseInt(strDate[0],10);
40
var selectedFriday = new Date(Date.UTC(year,(parseInt(strDate[1],10)-1),strDate[2]));
41
var diff = 5 - selectedFriday.getDay();
42
if (selectedFriday.getDay() == 6) {
45
selectedFriday = addDays(selectedFriday, diff);
46
if (currentFriday.getTime() != selectedFriday.getTime()) {
47
dateInput.value = DateToISOString(selectedFriday);
48
document.forms.parameters.submit();
55
if (GDatePicker.oDomContainer.style.display == 'block') {
59
var dateInput = document.getElementById('friday');
60
var arr = dateInput.value.split("-");
62
var year = parseInt(arr[0],10);
63
var month = parseInt(arr[1],10)-1;
64
var day = parseInt(arr[2],10)-1;
65
GDatePicker.setMonth(month);
66
GDatePicker.setYear(year);
68
for (var i= 0; i < GDatePicker.cells.length; ++i) {
69
if ( GDatePicker.cells[i].textContent == day && GDatePicker.cells[i].className.indexOf('selectable') != -1){
70
GDatePicker.cells[i].parentNode.style.outline = '1px solid red'; //highlighting the week
76
//positioning the date picker under the input box
77
var weekStart = document.getElementById('weekStart');
78
var offsetX = getX(weekStart);
79
var offsetY = getY(weekStart);
80
GDatePicker.oDomContainer.style.left = (offsetX-10)+"px";
81
GDatePicker.oDomContainer.style.top = (offsetY+ weekStart.offsetHeight)+"px";
83
//making the picker visible
85
event.preventDefault();
88
var dateInput = document.getElementById('friday');
89
var currentFriday = ISOStringToDate(dateInput.value);
90
selectedFriday = addDays(currentFriday, -7);
91
dateInput.value = DateToISOString(selectedFriday);
92
document.forms.parameters.submit();
95
var dateInput = document.getElementById('friday');
96
var currentFriday = ISOStringToDate(dateInput.value);
97
selectedFriday = addDays(currentFriday, 7);
98
dateInput.value = DateToISOString(selectedFriday);
99
document.forms.parameters.submit();
101
function remindEmployee(refid) {
102
var request = "<\?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n";
103
request += "<LIST>\n";
104
request += "\t<ITEM>"+refid+"</ITEM>\n";
105
request += "</LIST>\n";
106
ajaxSendXMLtoPHP('sendReminder.php',request,statusCallback);
108
function remindAll() {
109
var inputs = document.getElementsByTagName("input");
110
var request = "<\?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n";
111
request += "<LIST>\n";
113
var errorDisplay = new ErrorDisplay('errors','errorDiv');
114
for(var i=0; i < inputs.length; ++i)
116
if(inputs[i].name != "remind")
118
if(inputs[i].checked)
120
request += "\t<ITEM>"+inputs[i].value+"</ITEM>\n";
126
request += "</LIST>\n";
129
// request = "<\?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n";
130
// request += "<LIST>";
131
// request += "\t<ITEM>1273</ITEM>\n";
132
// request += "\t<ITEM>1251</ITEM>\n";
133
// request += "\t<ITEM>1407</ITEM>\n";
134
// request += "</LIST>";
137
ajaxSendXMLtoPHP('sendReminder.php',request,statusCallback);
140
errorDisplay.showError("Select at least one recipient",null,ErrorDisplay.WARNING);
142
function statusCallback(XML) {
145
var statuses = XML.getElementsByTagName("STATUS");
146
var errorDisplay = new ErrorDisplay('errors','errorDiv');
147
var successNo = XML.getElementsByTagName("SUCCESS");
148
if (successNo != null) {
149
successNo = successNo[0].textContent;
154
var failNo = XML.getElementsByTagName("FAIL");
155
if (failNo != null) {
156
failNo = failNo[0].textContent;
161
var messageType = ErrorDisplay.NOTICE;
163
if (successNo > 0 && failNo == 0) {
164
message = "Reminder sent succesfully to "+successNo+" recipient(s)";
166
if (successNo > 0 && failNo > 0) {
167
message = "Reminder sent succesfully to "+successNo+" recipient(s), but failed on "+failNo+" recipient(s)";
168
messageType = ErrorDisplay.WARNING;
170
if (successNo == 0 && failNo > 0) {
171
message = "Reminder failed to all "+failNo+" recipient(s)";
172
messageType = ErrorDisplay.FATAL;
174
if( successNo == 0 && failNo == 0) {
175
message = "No recipients, please contact IT department!";
176
messageType = ErrorDisplay.FATAL;
178
errorDisplay.showError(message,null,messageType);
180
errorDisplay.showError(statuses[0].textContent,null,ErrorDisplay.FATAL);
b'\\ No newline at end of file'