676 lines
26 KiB
JavaScript
676 lines
26 KiB
JavaScript
var db_history_date = "2013.12.31.23.59.59";
|
|
var jl_csc_id = 0;
|
|
var jl_tr_comp = 1;
|
|
var jl_tr_person = 2;
|
|
var jl_ad_street = 3;
|
|
var jl_tr_hsno = 4;
|
|
var jl_ad_country = 5;
|
|
var jl_ad_zipcode = 6;
|
|
var jl_ad_city = 7;
|
|
var jl_tr_remark = 8;
|
|
var jl_tr_photo = 9;
|
|
var jl_tr_commission_no = 10;
|
|
var jl_tr_tracking = 11;
|
|
var jl_hide_tr_remark = 12;
|
|
var jl_tr_ware_from = 13;
|
|
var jl_tr_ware_to = 14;
|
|
var jl_csc_id_payer = 15;
|
|
var jl_tr_mediationarea_id = 16;
|
|
var jl_tr_id = 17;
|
|
var GEO_EARTH_RADIUS = 6371.0;
|
|
var FILLDATEFIELDSSTARTYEAR = 2004;
|
|
|
|
function checkBrowser() {
|
|
if (screen.width < 1024 || screen.height < 768)
|
|
alert("Diese Anwendung benötigt eine Bildschirmauflösung von mindestens 1024 x 768 Pixeln.\n" +
|
|
"Bei einer kleineren Auflösung sind einige Bereiche auf dem Bildschirm möglicherweise nicht sichtbar.");
|
|
}
|
|
|
|
function mkPopupWin(content, widthPopupWin, heightPopupWin) {
|
|
var leftPopupWin;
|
|
var topPopupWin;
|
|
var popupWin;
|
|
var params = "";
|
|
if (widthPopupWin == 0) {
|
|
widthPopupWin = 250;
|
|
} else {
|
|
params = ",resizable=yes, scrollbars=yes";
|
|
}
|
|
if (heightPopupWin == 0) heightPopupWin = 10;
|
|
var leftPopupWin = (screen.width / 2) - (widthPopupWin / 2);
|
|
var topPopupWin = (screen.height / 2) - (heightPopupWin / 2) - 50;
|
|
var popupWin;
|
|
checkDoneContents = "";
|
|
if (typeof(parent.job_options) != 'undefined') {
|
|
parent.job_options.isCurrentlySubmitting = true;
|
|
checkDoneContents =
|
|
" if (++checkDoneCnt == 300)\n" +
|
|
" {\n" +
|
|
" //alert(\"Der Server antwortet nicht. Bitte überprüfen Sie,\\n\" +\n" +
|
|
" // \"ob Sie noch mit dem Internet verbunden sind!\");\n" +
|
|
" opener.parent.job_options.isCurrentlySubmitting = false;\n" +
|
|
" //self.close();\n" +
|
|
" }\n" +
|
|
" else\n" +
|
|
" {\n" +
|
|
" if (typeof (opener.parent.job_options) != 'undefined')\n" +
|
|
" {\n" +
|
|
" if (!opener.parent.job_options.isCurrentlySubmitting)\n" +
|
|
" {\n" +
|
|
"// opener.parent.job_tour.location.reload();\n" +
|
|
"// opener.parent.job_tour_list.location.reload();\n" +
|
|
" self.setTimeout(\"self.close()\",100);\n" +
|
|
" }\n" +
|
|
" else\n" +
|
|
" {\n" +
|
|
" self.setTimeout(\"checkDone()\",100);\n" +
|
|
" }\n" +
|
|
" }\n" +
|
|
" else\n" +
|
|
" {\n" +
|
|
" self.setTimeout(\"checkDone()\",100);\n" +
|
|
" }\n" +
|
|
" }\n";
|
|
}
|
|
var popupdata =
|
|
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n" +
|
|
"<html lang=\"de\">\n" +
|
|
"<head>\n" +
|
|
"<title>votian: Auftragserfassung - Datenübertragung...<\/title>\n" +
|
|
"<link rel=\"stylesheet\" type=\"text/css\" href=\"../css/phoenix.css.php\">\n" +
|
|
"<script type=\"text/javascript\">\n" +
|
|
"<!" + "--\n" +
|
|
"\n" +
|
|
"var checkDoneCnt = 0;\n" +
|
|
"\n" +
|
|
"function checkDone()\n" +
|
|
"{\n" +
|
|
checkDoneContents +
|
|
"}\n" +
|
|
"\n";
|
|
popupWin = window.open("about:blank",
|
|
"", "dependent=yes,width=" + widthPopupWin + ",height=" + heightPopupWin +
|
|
",left=" + leftPopupWin + ",top=" + topPopupWin + params);
|
|
// if (navigator.userAgent.indexOf("Firefox") == -1) {
|
|
popupWin.document.open();
|
|
popupWin.document.write(popupdata + content);
|
|
popupWin.document.close();
|
|
// } else {
|
|
// var url = "javascript:(function(){var html = '" + btoa(encodeURIComponent(escape(popupdata + content))) + "';document.open();document.write(unescape(decodeURIComponent(window.atob( html ))));document.close();})();";
|
|
// popupWin.location.href = url;
|
|
// }
|
|
return popupWin;
|
|
}
|
|
|
|
function dateTimeFormat(val) {
|
|
var strVal;
|
|
if (!isNaN(val)) {
|
|
val = parseInt(val, 10);
|
|
strVal = val.toString(10);
|
|
if (val >= 0 && val <= 9) strVal = "0" + strVal;
|
|
} else {
|
|
return val;
|
|
}
|
|
return strVal;
|
|
}
|
|
|
|
function getNumIndex(frameIdx, formIdx, elemIdx) {
|
|
var numIdx = new Array(-1, -1, -1);
|
|
var parentDocument = parent.document;
|
|
if (frameIdx != "") {
|
|
if (isNaN(frameIdx)) {
|
|
for (var i = 0; i < parent.frames.length; i++) {
|
|
if (parent.frames[i].name == frameIdx) {
|
|
numIdx[0] = i;
|
|
break;
|
|
}
|
|
}
|
|
} else {
|
|
numIdx[0] = frameIdx;
|
|
}
|
|
parentDocument = parent.frames[numIdx[0]].document;
|
|
}
|
|
if (formIdx == "")
|
|
return numIdx;
|
|
if (isNaN(formIdx)) {
|
|
for (var i = 0; i < parentDocument.forms.length; i++) {
|
|
if (parentDocument.forms[i].name == formIdx) {
|
|
numIdx[1] = i;
|
|
break;
|
|
}
|
|
}
|
|
} else {
|
|
numIdx[1] = formIdx;
|
|
}
|
|
if (elemIdx == "")
|
|
return numIdx;
|
|
if (isNaN(elemIdx)) {
|
|
for (var i = 0; i < parentDocument.forms[numIdx[1]].elements.length; i++) {
|
|
if (parentDocument.forms[numIdx[1]].elements[i].name == elemIdx) {
|
|
numIdx[2] = i;
|
|
break;
|
|
}
|
|
}
|
|
} else {
|
|
numIdx[2] = elemIdx;
|
|
}
|
|
return numIdx;
|
|
}
|
|
|
|
function getParent(frameIdx) {
|
|
var theParent = parent;
|
|
if (frameIdx != "") {
|
|
if (isNaN(frameIdx)) {
|
|
for (var i = 0; i < parent.frames.length; i++) {
|
|
if (parent.frames[i].name == frameIdx) {
|
|
theParent = parent.frames[i];
|
|
break;
|
|
}
|
|
}
|
|
} else {
|
|
theParent = parent.frames[frameIdx];
|
|
}
|
|
}
|
|
return theParent;
|
|
}
|
|
|
|
function getParentDocument(frameIdx) {
|
|
var parentDocument = parent.document;
|
|
if (frameIdx != "") {
|
|
if (isNaN(frameIdx)) {
|
|
for (var i = 0; i < parent.frames.length; i++) {
|
|
if (parent.frames[i].name == frameIdx) {
|
|
parentDocument = parent.frames[i].document;
|
|
break;
|
|
}
|
|
}
|
|
} else {
|
|
parentDocument = parent.frames[frameIdx].document;
|
|
}
|
|
}
|
|
return parentDocument;
|
|
}
|
|
|
|
function getElemByIndices(frameIdx, formIdx, elemIdx) {
|
|
var parentDocument = getParentDocument(frameIdx);
|
|
if (isNaN(elemIdx))
|
|
return parentDocument.getElementsByName(elemIdx)[0];
|
|
else
|
|
return parentDocument.getElementsByName(formIdx)[0].elements[elemIdx];
|
|
}
|
|
|
|
function getOptionTextByVal(frameIdx, formIdx, elemIdx, val) {
|
|
var theElem = getElemByIndices(frameIdx, formIdx, elemIdx);
|
|
for (i = 0; i < theElem.length; i++) {
|
|
if (theElem.options[i].value == val)
|
|
return theElem.options[i].text;
|
|
}
|
|
return ("");
|
|
}
|
|
|
|
function optionTextExists(frameIdx, formIdx, elemIdx, textVal) {
|
|
var theElem = getElemByIndices(frameIdx, formIdx, elemIdx);
|
|
for (i = 0; i < theElem.length; i++) {
|
|
if (theElem.options[i].text == textVal)
|
|
return (true);
|
|
}
|
|
return (false);
|
|
}
|
|
|
|
function getSelectedVal(frameIdx, formIdx, elemIdx) {
|
|
var selVal = "";
|
|
var i = 0;
|
|
var found = 0;
|
|
var theSelectedVal = getElemByIndices(frameIdx, formIdx, elemIdx);
|
|
if (theSelectedVal.type == "select-one") {
|
|
while (i < theSelectedVal.length & !found) {
|
|
if (theSelectedVal.options[i].selected) {
|
|
selVal = theSelectedVal.options[i].value;
|
|
found = 1;
|
|
}
|
|
i += 1;
|
|
}
|
|
} else {
|
|
return theSelectedVal.value;
|
|
}
|
|
return selVal;
|
|
}
|
|
|
|
function getSelectedNumVal(frameIdx, formIdx, elemIdx) {
|
|
var selVal = getSelectedVal(frameIdx, formIdx, elemIdx);
|
|
if (selVal != "")
|
|
selVal = parseInt(selVal, 10);
|
|
else
|
|
selVal = 0;
|
|
return selVal;
|
|
}
|
|
|
|
function isSelectField(frameIdx, formIdx, elemIdx) {
|
|
var theElem = getElemByIndices(frameIdx, formIdx, elemIdx);
|
|
if (theElem.type != "select-one")
|
|
return false;
|
|
return true;
|
|
}
|
|
|
|
function delOptions(frameIdx, formIdx, elemIdx) {
|
|
if (!isSelectField(frameIdx, formIdx, elemIdx))
|
|
return;
|
|
var theElem = getElemByIndices(frameIdx, formIdx, elemIdx);
|
|
while (theElem.length > 0)
|
|
theElem.options[theElem.length - 1] = null;
|
|
}
|
|
|
|
function addOption(frameIdx, formIdx, elemIdx, newVal, defaultSelected, selected) {
|
|
if (!isSelectField(frameIdx, formIdx, elemIdx))
|
|
return;
|
|
var theElem = getElemByIndices(frameIdx, formIdx, elemIdx);
|
|
newOption = new Option(newVal, newVal, defaultSelected, selected);
|
|
theElem.options[theElem.length] = newOption;
|
|
}
|
|
|
|
function setSelectedOption(frameIdx, formIdx, elemIdx, val) {
|
|
var theSelectedOption = getElemByIndices(frameIdx, formIdx, elemIdx);
|
|
if (theSelectedOption.type == "select-one") {
|
|
for (i = 0; i < theSelectedOption.length; i++) {
|
|
if (theSelectedOption.options[i].value == val)
|
|
theSelectedOption.options[i].selected =
|
|
true;
|
|
else
|
|
theSelectedOption.options[i].selected =
|
|
false;
|
|
}
|
|
} else {
|
|
theSelectedOption.value = val;
|
|
}
|
|
}
|
|
|
|
function setDateTimeFields(
|
|
frameIdx, formIdx, day, mon, year, hour, minute, dayIdx, monIdx, yearIdx, hourIdx, minuteIdx, rhythmIdx) {
|
|
var daysOfWeek = new Array("Sonntag", "Montag", "Dienstag", "Mittwoch",
|
|
"Donnerstag", "Freitag", "Sonnabend", "Sonntag");
|
|
var selDate = new Date(year, mon - 1, day);
|
|
var theParent = getParent(frameIdx);
|
|
if (!isSelectField(frameIdx, formIdx, dayIdx) && day != "" && mon != "") {
|
|
day = dateTimeFormat(day);
|
|
mon = dateTimeFormat(mon);
|
|
if (hour != "")
|
|
hour = dateTimeFormat(hour);
|
|
if (minute != "")
|
|
minute = dateTimeFormat(minute);
|
|
}
|
|
if (isSelectField(frameIdx, formIdx, yearIdx))
|
|
mkNewDayOptions(frameIdx, formIdx, dayIdx, mon, year);
|
|
setSelectedOption(frameIdx, formIdx, dayIdx, day);
|
|
setSelectedOption(frameIdx, formIdx, monIdx, mon);
|
|
setSelectedOption(frameIdx, formIdx, yearIdx, year);
|
|
if (hourIdx != "" && minuteIdx != "") {
|
|
setSelectedOption(frameIdx, formIdx, hourIdx, hour);
|
|
setSelectedOption(frameIdx, formIdx, minuteIdx, minute);
|
|
}
|
|
if (rhythmIdx != "") {
|
|
rhythmElem = getElemByIndices(frameIdx, formIdx, rhythmIdx);
|
|
dayOfWeekElem = getElemByIndices(frameIdx, formIdx, "dayOfWeek");
|
|
if (day.toString(10) != "" && mon.toString(10) != "" && year.toString(10) != "" && hour.toString(10) != "" && minute.toString(10) != "") {
|
|
dayOfWeekElem.value = "(" + daysOfWeek[selDate.getDay()] + ")";
|
|
if (theParent.isPublicHoliday(year, mon, day)) {
|
|
dayOfWeekElem.className = "hideSmallRed";
|
|
} else {
|
|
dayOfWeekElem.className = "hideSmall";
|
|
}
|
|
rhythmElem.disabled = false;
|
|
} else {
|
|
dayOfWeekElem.value = "";
|
|
dayOfWeekElem.className = "hideSmall";
|
|
setSelectedOption(frameIdx, formIdx, rhythmIdx, "");
|
|
rhythmElem.disabled = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
function fillDateFieldsCheck(
|
|
init, frameIdx, formIdx, callerIdx, dayIdx1, monIdx1, yearIdx1, hourIdx1, minuteIdx1, rhythmIdx1,
|
|
dayIdx2, monIdx2, yearIdx2, hourIdx2, minuteIdx2, rhythmIdx2) {
|
|
var selMon1 = 0;
|
|
var selYear1 = 0;
|
|
var selDay1 = 0;
|
|
var selHour1 = 0;
|
|
var selMinute1 = 0;
|
|
var selMon2 = 0;
|
|
var selYear2 = 0;
|
|
var selDay2 = 0;
|
|
var selHour2 = 0;
|
|
var selMinute2 = 0;
|
|
if (callerIdx == dayIdx1 || callerIdx == monIdx1 || callerIdx == yearIdx1 || callerIdx == hourIdx1 || callerIdx == minuteIdx1)
|
|
fillDateFields(init, frameIdx, formIdx, callerIdx, dayIdx1, monIdx1, yearIdx1, hourIdx1, minuteIdx1, rhythmIdx1);
|
|
if (callerIdx == dayIdx2 || callerIdx == monIdx2 || callerIdx == yearIdx2 || callerIdx == hourIdx2 || callerIdx == minuteIdx2)
|
|
fillDateFields(init, frameIdx, formIdx, callerIdx, dayIdx2, monIdx2, yearIdx2, hourIdx2, minuteIdx2, rhythmIdx2);
|
|
if (getSelectedVal(frameIdx, formIdx, callerIdx) != "") {
|
|
var selDay1 = getSelectedNumVal(frameIdx, formIdx, dayIdx1);
|
|
var selMon1 = getSelectedNumVal(frameIdx, formIdx, monIdx1);
|
|
var selYear1 = getSelectedNumVal(frameIdx, formIdx, yearIdx1);
|
|
if (hourIdx1 != "" && minuteIdx1 != "") {
|
|
selHour1 = getSelectedNumVal(frameIdx, formIdx1, hourIdx1);
|
|
selMinute1 = getSelectedNumVal(frameIdx, formIdx1, minuteIdx1);
|
|
}
|
|
var selDay2 = getSelectedNumVal(frameIdx, formIdx, dayIdx2);
|
|
var selMon2 = getSelectedNumVal(frameIdx, formIdx, monIdx2);
|
|
var selYear2 = getSelectedNumVal(frameIdx, formIdx, yearIdx2);
|
|
if (hourIdx2 != "" && minuteIdx2 != "") {
|
|
selHour2 = getSelectedNumVal(frameIdx, formIdx2, hourIdx2);
|
|
selMinute2 = getSelectedNumVal(frameIdx, formIdx2, minuteIdx2);
|
|
}
|
|
var selDateCheck1 = new Date(selYear1, selMon1 - 1, selDay1, selHour1, selMinute1, 0);
|
|
var selDateCheck2 = new Date(selYear2, selMon2 - 1, selDay2, selHour2, selMinute2, 0);
|
|
if (selDateCheck1.getTime() > selDateCheck2.getTime()) {
|
|
var selMonStr = "";
|
|
var selYearStr = "";
|
|
var selDayStr = "";
|
|
var selHourStr = "";
|
|
var selMinuteStr = "";
|
|
selDayStr = getSelectedVal(frameIdx, formIdx, dayIdx1);
|
|
selMonStr = getSelectedVal(frameIdx, formIdx, monIdx1);
|
|
selYearStr = getSelectedVal(frameIdx, formIdx, yearIdx1);
|
|
if (hourIdx1 != "" && minuteIdx1 != "") {
|
|
selHourStr = getSelectedVal(frameIdx, formIdx, hourIdx1);
|
|
selMinuteStr = getSelectedVal(frameIdx, formIdx, minuteIdx1);
|
|
} else {
|
|
selHourStr = "";
|
|
selMinuteStr = "";
|
|
}
|
|
setDateTimeFields(frameIdx, formIdx, selDayStr, selMonStr, selYearStr, selHourStr, selMinuteStr, dayIdx2, monIdx2, yearIdx2, hourIdx2, minuteIdx2, rhythmIdx2);
|
|
return fillDateFieldsCheck(init, frameIdx, formIdx, callerIdx, dayIdx1, monIdx1, yearIdx1, hourIdx1, minuteIdx1, rhythmIdx1,
|
|
dayIdx2, monIdx2, yearIdx2, hourIdx2, minuteIdx2, rhythmIdx2);
|
|
}
|
|
var isDbhistory = false;
|
|
var quarterDate = new Date();
|
|
var quarterDayStr = "";
|
|
var quarterMonStr = "";
|
|
var quarterYearStr = "";
|
|
var now = new Date();
|
|
var todayYear = now.getYear();
|
|
if (todayYear < 999) todayYear += 1900;
|
|
var dateArr = db_history_date.split(".");
|
|
quarterDate = new Date(dateArr[0], dateArr[1] - 1, dateArr[2], dateArr[3], dateArr[4], dateArr[5]);
|
|
quarterDayStr = dateArr[2];
|
|
quarterMonStr = dateArr[1];
|
|
quarterYearStr = dateArr[0];
|
|
if (!(
|
|
(selDateCheck1.getTime() > quarterDate.getTime() && selDateCheck2.getTime() > quarterDate.getTime()) ||
|
|
(selDateCheck1.getTime() < quarterDate.getTime() && selDateCheck2.getTime() < quarterDate.getTime())
|
|
)) {
|
|
var isDbhistory = true;
|
|
alert("Der gewählte Zeitraum beinhaltet den Quartalswechsel zum " + quarterDayStr + "." + quarterMonStr + "." + quarterYearStr +
|
|
".\n Aufträge bis einschließlich diesem Datum liegen nur noch in der Archivdatenbank vor, daher wird das Enddatum auf den " + quarterDayStr + "." + quarterMonStr + "." + quarterYearStr + " gesetzt!");
|
|
setDateTimeFields(frameIdx, formIdx, quarterDayStr, quarterMonStr, quarterYearStr, "", "", dayIdx2, monIdx2, yearIdx2, hourIdx2, minuteIdx2, rhythmIdx2);
|
|
} else {
|
|
if (selDateCheck1.getTime() < quarterDate.getTime() && selDateCheck2.getTime() < quarterDate.getTime())
|
|
var isDbhistory = true;
|
|
}
|
|
var dbhistoryElem = getElemByIndices(frameIdx, formIdx, "dbhistory");
|
|
if (typeof(dbhistoryElem) != 'undefined') {
|
|
if (isDbhistory)
|
|
dbhistoryElem.value = "1";
|
|
else
|
|
dbhistoryElem.value = "0";
|
|
}
|
|
}
|
|
}
|
|
|
|
function fillDateFields(
|
|
init, frameIdx, formIdx, callerIdx, dayIdx, monIdx, yearIdx, hourIdx, minuteIdx, rhythmIdx) {
|
|
var daysPerMonth = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
|
|
var curDate = new Date();
|
|
var curYear = curDate.getYear();
|
|
if (curYear < 999) {
|
|
if (curYear > 99) {
|
|
curYear += 1900;
|
|
} else {
|
|
curYear += 2000;
|
|
}
|
|
}
|
|
var curDateMidnight = new Date(curYear, curDate.getMonth(), curDate.getDate(), 0, 0, 0);
|
|
var mkNewDays = false;
|
|
var selMonStr = "";
|
|
var selYearStr = "";
|
|
var selDayStr = "";
|
|
var selHourStr = "";
|
|
var selMinuteStr = "";
|
|
var selMon = 0;
|
|
var selYear = 0;
|
|
var selDay = 0;
|
|
var selHour = 0;
|
|
var selMinute = 0;
|
|
if (!init) {
|
|
if (getSelectedVal(frameIdx, formIdx, callerIdx) == "")
|
|
return setDateTimeFields(frameIdx, formIdx, "", "", "", "", "", dayIdx, monIdx, yearIdx, hourIdx, minuteIdx, rhythmIdx);
|
|
else {
|
|
selDayStr = getSelectedVal(frameIdx, formIdx, dayIdx);
|
|
selMonStr = getSelectedVal(frameIdx, formIdx, monIdx);
|
|
selYearStr = getSelectedVal(frameIdx, formIdx, yearIdx);
|
|
selDay = getSelectedNumVal(frameIdx, formIdx, dayIdx);
|
|
selMon = getSelectedNumVal(frameIdx, formIdx, monIdx);
|
|
selYear = getSelectedNumVal(frameIdx, formIdx, yearIdx);
|
|
if (hourIdx != "" && minuteIdx != "") {
|
|
selHour = getSelectedNumVal(frameIdx, formIdx, hourIdx);
|
|
selMinute = getSelectedNumVal(frameIdx, formIdx, minuteIdx);
|
|
selHourStr = getSelectedVal(frameIdx, formIdx, hourIdx);
|
|
selMinuteStr = getSelectedVal(frameIdx, formIdx, minuteIdx);
|
|
} else {
|
|
selHour = 0;
|
|
selMinute = 0;
|
|
selHourStr = "";
|
|
selMinuteStr = "";
|
|
}
|
|
}
|
|
}
|
|
if (!isSelectField(frameIdx, formIdx, dayIdx)) {
|
|
if (!(selDayStr == "" || selMonStr == "" || selYearStr == "" || selDay == 0 || selMon == 0)) {
|
|
if (selYear < 100)
|
|
selYear += 2000;
|
|
if (selYear < 1900)
|
|
selYear = 1900;
|
|
var selDate = new Date(selYear, selMon - 1, selDay, selHour, selMinute, 0);
|
|
selDay = selDate.getDate();
|
|
selMon = selDate.getMonth() + 1;
|
|
selYear = selDate.getFullYear();
|
|
selHour = selDate.getHours();
|
|
selMinute = selDate.getMinutes();
|
|
selDayStr = dateTimeFormat(selDate.getDate());
|
|
selMonStr = dateTimeFormat(selDate.getMonth() + 1);
|
|
selYearStr = dateTimeFormat(selDate.getFullYear());
|
|
selHourStr = dateTimeFormat(selDate.getHours());
|
|
selMinuteStr = dateTimeFormat(selDate.getMinutes());
|
|
}
|
|
}
|
|
if (init) {
|
|
mkNewDays = true;
|
|
addOption(frameIdx, formIdx, monIdx, "", true, true);
|
|
for (var i = 0; i < 12; i++)
|
|
addOption(frameIdx, formIdx, monIdx, dateTimeFormat(i + 1), false, false);
|
|
addOption(frameIdx, formIdx, yearIdx, "", true, true);
|
|
var j = 0;
|
|
while (FILLDATEFIELDSSTARTYEAR + j <= curYear + 1)
|
|
addOption(frameIdx, formIdx, yearIdx, FILLDATEFIELDSSTARTYEAR + j++, false, false);
|
|
if (hourIdx != "" && minuteIdx != "") {
|
|
addOption(frameIdx, formIdx, hourIdx, "", true, true);
|
|
for (var i = 0; i < 24; i++)
|
|
addOption(frameIdx, formIdx, hourIdx, dateTimeFormat(i), false, false);
|
|
addOption(frameIdx, formIdx, minuteIdx, "", true, true);
|
|
for (var i = 0; i < 60; i += 5)
|
|
addOption(frameIdx, formIdx, minuteIdx, dateTimeFormat(i), false, false);
|
|
}
|
|
} else {
|
|
var parent_job_options_empModeLaterJob = 1;
|
|
var parent_job_options_is_afterwards = true;
|
|
var parent_job_options_was_afterwards = true;
|
|
if (typeof(parent.job_options) != 'undefined') {
|
|
parent_job_options_empModeLaterJob = parent.job_options.empModeLaterJob;
|
|
parent_job_options_is_afterwards = parent.job_options.is_afterwards;
|
|
parent_job_options_was_afterwards = parent.job_options.was_afterwards;
|
|
}
|
|
if (typeof(parent.job_options) != 'undefined' || formIdx == "jb_dispoinfo_form")
|
|
if (parent_job_options_empModeLaterJob != "1" || formIdx == "jb_dispoinfo_form") {
|
|
if (callerIdx == monIdx || callerIdx == yearIdx)
|
|
mkNewDays = true;
|
|
if (selYearStr == "")
|
|
selYear = curYear;
|
|
if (selMonStr == "" || selMon == 0)
|
|
selMon = curDate.getMonth() + 1;
|
|
if (selDayStr == "" || selDay == 0) {
|
|
if (selYear == curYear && selMon == curDate.getMonth() + 1)
|
|
selDay = curDate.getDate();
|
|
else
|
|
selDay = 1;
|
|
}
|
|
if (selDay == curDate.getDate() && selMon == curDate.getMonth() + 1 && selYear == curYear) {
|
|
if (selHourStr == "")
|
|
selHour = curDate.getHours();
|
|
if (selMinuteStr == "") {
|
|
selMinute = curDate.getMinutes() + 1;
|
|
while (selMinute % 5 > 0) selMinute++;
|
|
if (selMinute == 60) {
|
|
selMinute = 0;
|
|
if (++selHour > 23) {
|
|
selHour -= 24;
|
|
if (++selDay > daysPerMonth[selMon - 1]) {
|
|
selDay = 1;
|
|
if (++selMon > 12) {
|
|
selMon = 1;
|
|
selYear = curYear + 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//alert(selYear + "," + selMon + "," + selDay + "," + selHour + "," + selMinute);
|
|
if (((hourIdx != "" && minuteIdx != "") || dayIdx == "endetag") && ((!parent_job_options_is_afterwards && !parent_job_options_was_afterwards) || formIdx == "jb_dispoinfo_form")) {
|
|
selDate = new Date(selYear, selMon - 1, selDay, 0, 0, 0);
|
|
if (selDate.getTime() < curDateMidnight.getTime()) {
|
|
if (callerIdx == dayIdx)
|
|
if (++selMon > 12) {
|
|
selMon = 1;
|
|
selYear = curYear + 1;
|
|
}
|
|
if (callerIdx == monIdx)
|
|
selYear = curYear + 1;
|
|
if (callerIdx == yearIdx) {
|
|
selMon = curDate.getMonth() + 1;
|
|
if (selDay < curDate.getDate())
|
|
if (++selMon > 12) {
|
|
selMon = 1;
|
|
selYear = curYear + 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if ((hourIdx != "" && minuteIdx != "") && (callerIdx != hourIdx && callerIdx != minuteIdx)) {
|
|
selDate = new Date(selYear, selMon - 1, selDay, 0, 0, 0);
|
|
if (selHour == "" && selHour.toString(10) != "0" || selDate.getTime() ==
|
|
curDateMidnight.getTime()) {
|
|
if (selDate.getTime() == curDateMidnight.getTime() && selHour < curDate.getHours())
|
|
selHour = curDate.getHours();
|
|
else if (selHour == "" && selHour.toString(10) != "0")
|
|
selHour = 0;
|
|
} else if (selHour == "" && selHour.toString(10) != "0")
|
|
selHour = 0;
|
|
if ((selMinute == "" && selMinute.toString(10) != "0") ||
|
|
(selHour == curDate.getHours() && selDate.getTime() == curDateMidnight.getTime())) {
|
|
if (selHour == curDate.getHours() && selDate.getTime() ==
|
|
curDateMidnight.getTime() && selMinute <= curDate.getMinutes()) {
|
|
selMinute = curDate.getMinutes() + 1;
|
|
while (selMinute % 5 > 0) selMinute++;
|
|
if (selMinute == 60) {
|
|
selMinute = 0;
|
|
if (++selHour > 23) {
|
|
selHour -= 24;
|
|
if (++selDay > daysPerMonth[selMon - 1]) {
|
|
selDay = 1;
|
|
if (++selMon > 12) {
|
|
selMon = 1;
|
|
selYear = curYear + 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} else if (selMinute == "" && selMinute.toString(10) != "0")
|
|
selMinute = 0;
|
|
} else if (selMinute == "" && selMinute.toString(10) != "0")
|
|
selMinute = 0;
|
|
selHourStr = dateTimeFormat(selHour);
|
|
selMinuteStr = dateTimeFormat(selMinute);
|
|
}
|
|
selDayStr = dateTimeFormat(selDay);
|
|
selMonStr = dateTimeFormat(selMon);
|
|
selYearStr = dateTimeFormat(selYear);
|
|
}
|
|
}
|
|
if (mkNewDays) {
|
|
mkNewDayOptions(frameIdx, formIdx, dayIdx, selMon, selYear);
|
|
if (selDay > daysPerMonth[selMon - 1])
|
|
selDay = daysPerMonth[selMon - 1];
|
|
}
|
|
if (!init) {
|
|
if (selDay == 0)
|
|
selDayStr = "";
|
|
if (selMon == 0)
|
|
selMonStr = "";
|
|
setDateTimeFields(frameIdx, formIdx, selDayStr, selMonStr, selYearStr, selHourStr, selMinuteStr, dayIdx, monIdx, yearIdx, hourIdx, minuteIdx, rhythmIdx);
|
|
if (typeof(parent.job_options) != 'undefined' && (callerIdx == dayIdx || callerIdx == monIdx || callerIdx == yearIdx || callerIdx == hourIdx || callerIdx == minuteIdx) && !(selDayStr == "" | selMonStr == "" | selYearStr == "" | selHourStr == "" | selMinuteStr == "")) {
|
|
if (typeof(parent.job_options.document.tourOptions.afterwards.checked) != 'undefined') {
|
|
var selDateCheck = new Date(selYear, selMon - 1, selDay, selHour, selMinute, 0);
|
|
//alert(selDateCheck);
|
|
if ((parent.job_options.document.tourOptions.afterwards.checked || parent.job_options.was_afterwards) && selDateCheck.getTime() > curDate.getTime())
|
|
alert("Achtung: Der Zeitpunkt " + selDayStr + "." + selMonStr + "." + selYearStr + ", " + selHourStr + ":" + selMinuteStr + " liegt in der Zukunft!");
|
|
else {
|
|
if (!(parent.job_options.document.tourOptions.afterwards.checked || parent.job_options.was_afterwards) && selDateCheck.getTime() < curDate.getTime())
|
|
alert("Achtung: Der Zeitpunkt " + selDayStr + "." + selMonStr + "." + selYearStr + ", " + selHourStr + ":" + selMinuteStr + " liegt in der Vergangenheit!");
|
|
else {
|
|
var fourWeeksBefore = new Date();
|
|
var absNow = fourWeeksBefore.getTime();
|
|
var absThen = absNow - (31 * 24 * 60 * 60 * 1000);
|
|
fourWeeksBefore.setTime(absThen);
|
|
if (selDateCheck.getTime() < fourWeeksBefore.getTime()) {
|
|
alert("Achtung: Der Zeitpunkt " + selDayStr + "." + selMonStr + "." + selYearStr + ", " + selHourStr + ":" + selMinuteStr + " liegt mehr als vier Wochen in der Vergangenheit!")
|
|
}
|
|
var fourWeeksAhead = new Date();
|
|
var absThen = absNow + (31 * 24 * 60 * 60 * 1000);
|
|
fourWeeksAhead.setTime(absThen);
|
|
if (selDateCheck.getTime() > fourWeeksAhead.getTime()) {
|
|
alert("Achtung: Der Zeitpunkt " + selDayStr + "." + selMonStr + "." + selYearStr + ", " + selHourStr + ":" + selMinuteStr + " liegt mehr als vier Wochen in der Zukunft!")
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
function mkNewDayOptions(frameIdx, formIdx, dayIdx, selMon, selYear) {
|
|
var daysPerMonth = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
|
|
if (selMon == 2) {
|
|
if (selYear % 4 == 0)
|
|
if (selYear < 1582)
|
|
daysPerMonth[1] = 29;
|
|
else if (!(selYear % 100 == 0))
|
|
daysPerMonth[1] = 29;
|
|
else if (selYear % 400 == 0)
|
|
daysPerMonth[1] = 29;
|
|
} else if (selMon == "")
|
|
selMon = 1;
|
|
delOptions(frameIdx, formIdx, dayIdx);
|
|
addOption(frameIdx, formIdx, dayIdx, "", true, true);
|
|
for (var i = 0; i < daysPerMonth[selMon - 1]; i++)
|
|
addOption(frameIdx, formIdx, dayIdx, dateTimeFormat(i + 1), false, false);
|
|
}
|
|
|
|
function isPublicHoliday(year, month, day) {
|
|
for (i = 0; i < ph.length; i++) {
|
|
if (ph[i] == year + "" + month + "" + day) {
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|