//Attachtes event evType to object obj to call function fc on the event function addEvent(obj, evType, fn) { if (obj.addEventListener){ obj.addEventListener(evType, fn, true); return true; } else if (obj.attachEvent) { var r = obj.attachEvent("on"+evType, fn); return r; } else { return false; } } function attachScript(sFileName) { var script; script = document.createElement('script'); script.type = 'text/javascript'; script.src = sFileName; document.getElementsByTagName('head')[0].appendChild(script); } function windowOnLoad() { //attachScript('jsColorOnFocus.js'); //attachScript('jsError.js'); //attachScript('jsRound.asp'); //attachScript('jsTools.js'); //attachScript('jsDate.js'); //attachScript('jsTime.js'); jsColorOnFocusInit(); } function addWindowLoadEvent(fct) { addEvent(window, 'load', fct); } addEvent(window, 'load', windowOnLoad); var ColorOfBackground = "#FFC843"; var DoColorize = true; //Set the background color (when the control gets the focus) function oninputfocus(e) { var source; source = getControlFromEvent(e); if(source!=null) if(source.style.backgroundColor == "") source.style.backgroundColor = ColorOfBackground; } //Clear the background color (when the control lost its focus) function oninputblur(e) { var source; source = getControlFromEvent(e); if(source!=null) { var orgColor; var testColor; orgColor = source.style.backgroundColor; source.style.backgroundColor = ColorOfBackground; testColor = source.style.backgroundColor; //alert(orgColor); //alert(testColor); //alert(orgColor == testColor); if(orgColor == testColor) source.style.backgroundColor = ""; else source.style.backgroundColor = orgColor; } } function attachEventToCtlLst(ctlList, checkForImage) { var ctl; for (var i = 0; (ctl = ctlList[i]); i++) { if(!checkForImage || ctl.type != 'image') { addEvent(ctl, 'focus', oninputfocus); addEvent(ctl, 'blur', oninputblur); } } } function jsColorOnFocusInit() { if(DoColorize) { attachEventToCtlLst(document.getElementsByTagName('input'), true); //attachEventToCtlLst(document.getElementsByTagName('select'), false); attachEventToCtlLst(document.getElementsByTagName('textarea'), false); } } var UsrLng = 1; var sInvalidDate=''; var sInvalidYear=''; var sInvalidMonth=''; var sInvalidTimeFormat=''; var alertInvalidHourFormat=''; function initErrTxts() { sInvalidDate = new Array('Date not valid.', 'Ungültiges Datum!')[UsrLng]; sInvalidYear = new Array('Year not valid.', 'Ungültiges Jahr!')[UsrLng]; sInvalidMonth = new Array('Month not valid.', 'Ungültiger Monat!')[UsrLng]; sInvalidTimeFormat = new Array('Time not valid!', 'Zeitformat unbekannt!')[UsrLng]; alertInvalidHourFormat = new Array('Invalid hour format', 'Stundenformat unbekannt!')[UsrLng]; } initErrTxts(); var RoundTotalFunction; function Rndn(num){ return Math.round(pureNr(num) * 100)/ 100;} function RndnSwiss(num){ return DecAusg(Math.round(pureNr(num) * 20) / 20);} RoundTotalFunction = Rndn; function FhlrMldng(elem, text){ window.alert(text); elem.select(); elem.focus(); } function ValidStd(item){ if (item.indexOf(",",0) >= 0) return false; return true;} function DecAusg(value){ value = pureNr(value); var str = "" + Math.round(value * 100); var len = str.length; if (str == "0") return ("0.00"); else { if (len == 1) ret = ("0.0" + str); else if(len == 2) ret = ("0." + str); else ret = (str.substring(0, len-2) + "." + str.substring(len-2, len)); } return ret; } function DecAusgToMax(value, decmax) { value = pureNr(value); //var str = "" + Math.round(value * Math.pow(10,decmax)); if (Number.value = 0) return "0.00"; var str = "" + (Math.round(value * Math.pow(10, decmax)) / (Math.pow(10, decmax))); var part1; var part2; var iPos = str.indexOf("."); if (iPos == -1) { iPos = str.length; str = str + ".00"; } if (iPos == -1) { part1 = str; part2 = "00"; } else { part1 = str.substring(0, iPos); part2 = str.substring(iPos + 1, str.length); } ret = "" + part1 + "." + part2; return ret; } function SetCmdDefault(field, defvalue) { field.value = defvalue; } function pureNr(str) { var val; val = new String(str); val = val.replace("'",""); val = val.replace(",","."); var ret; ret = new Number(); ret = val; return ret; } function FieldSetEnabled(fld, enbled) { if(enbled) { fld.style.disabled = false; fld.contentEditable = true; fld.style.backgroundColor = 'inherit'; } else { fld.style.disabled = true; fld.contentEditable = false; fld.style.backgroundColor = '#AAAAAA'; } } function makeHoursField(fld) { fld.value = DecAusg(fld.value); var ok = ValidStd(fld.value); if(!ok) FhlrMldng(fld, alertInvalidHourFormat); return ok; } function getControlFromEvent(e) { /* Cookie-cutter code to find the source of the event */ if (typeof e == 'undefined') var e = window.event; var source; if (typeof e.target != 'undefined') { source = e.target; } else if (typeof e.srcElement != 'undefined') { source = e.srcElement; } else { source = null; } /* End cookie-cutter code */ return source; }function CharInStringToInt(zeichen, index){ var i, zahl; if (zeichen.charCodeAt(index) < 48) return -1; if (zeichen.charCodeAt(index) > 57) return -1; for (i=0; i<10; i++){ if (zeichen.charCodeAt(index) == (48+i) ) zahl = i; } return zahl; } function ValidDate(item){ var tag1, tag2, monat1, monat2, jahr1, jahr2, jahr3, jahr4, Tag, Monat, Jahr, MaxTag; if (item.indexOf(".",0) != 2) return false; if (item.length != 10) return false; tag1 = CharInStringToInt(item,0);if (tag1 == -1) return false; tag2 = CharInStringToInt(item,1);if (tag2 == -1) return false; monat1 = CharInStringToInt(item,3);if (monat1 == -1) return false; monat2 = CharInStringToInt(item,4);if (monat2 == -1) return false; jahr1 = CharInStringToInt(item,6);if (jahr1 == -1) return false; jahr2 = CharInStringToInt(item,7);if (jahr2 == -1) return false; jahr3 = CharInStringToInt(item,8);if (jahr3 == -1) return false; jahr4 = CharInStringToInt(item,9);if (jahr4 == -1) return false; Tag = (tag1 * 10) + tag2; Monat = (monat1 * 10) + monat2; Jahr = (jahr1 * 1000) + (jahr2 * 100) + (jahr3 * 10) + jahr4; if ((Monat < 1) || (Monat > 12)) return false; if ((Monat == 1) || (Monat == 3) || (Monat == 5)|| (Monat == 7) || (Monat == 8) || (Monat == 10) || (Monat == 12)) MaxTag = 31; else if ((Monat == 4) || (Monat == 6) || (Monat == 9)|| (Monat == 11)) MaxTag = 30; else { MaxTag = 28; if (Jahr % 4 == 0){ MaxTag = 29; if (Jahr % 100 == 0){ MaxTag = 28; if (Jahr % 1000 == 0) MaxTag = 29; } } } if ((Tag < 1) || (Tag > MaxTag)) return false; if ((Jahr < 1900) || (Jahr > 2060)) return false; return true; } /***********************************************************************/ /* Eingabe von xx < 60 Ausgabe 20xx, Eingabe von xx >= 60 Ausgabe 19xx */ /***********************************************************************/ function PrfJhdt(DatumString, Laenge){ if (Laenge == 6){ if (CharInStringToInt(DatumString, 4) > 5) return "19" + DatumString.substring(4,6); else return "20" + DatumString.substring(4,6); } if (Laenge == 7){ if (CharInStringToInt(DatumString, 5) > 5) return "19" + DatumString.substring(5,7); else return "20" + DatumString.substring(5,7); } if (Laenge == 8){ if (CharInStringToInt(DatumString, 6) > 5) return "19" + DatumString.substring(6,8); else return "20" + DatumString.substring(6,8); } } function getFullYear(AktDat){ var y = AktDat.getYear(); if (y < 1000) y += 1900; return y; } /********************************************************************/ /* Eingabefeld DATUM im Format dd.mm.yyyy darstellen */ /********************************************************************/ function DisplayDate(DatumString) { var AktDat = new Date(); var AktJahr; AktJahr = getFullYear(AktDat); if ((DatumString.indexOf(".",0) != 1) && (DatumString.indexOf(".",0) != 2)) return DatumString; if (DatumString.length == 3) /* 6.6 */ if (DatumString.indexOf(".",0) == 1) DatumString = "0" + DatumString.substring(0,1) + ".0" + DatumString.substring(2,3) + "." + AktJahr; if (DatumString.length == 4) /* 06.6 oder 6.6. oder 6.06 */ if (DatumString.indexOf(".",0) == 2) DatumString = DatumString.substring(0,2) + ".0" + DatumString.substring(3,4) + "." + AktJahr; else if (DatumString.indexOf(".",2) == 3) DatumString = "0" + DatumString.substring(0,1) + ".0" + DatumString.substring(2,3) + "." + AktJahr; else if (DatumString.indexOf(".",0) == 1) DatumString = "0" + DatumString.substring(0,1) + "." + DatumString.substring(2,4) + "." + AktJahr; if (DatumString.length == 5) /* 6.06. oder 06.6. oder 06.06 */ if (DatumString.indexOf(".",0) == 1) DatumString = "0" + DatumString.substring(0,1) + "." + DatumString.substring(2,4) + "." + AktJahr; else if (DatumString.indexOf(".",3) == 4) DatumString = DatumString.substring(0,2) + ".0" + DatumString.substring(3,4) + "." + AktJahr; else if (DatumString.indexOf(".",0) == 2) DatumString = DatumString.substring(0,2) + "." + DatumString.substring(3,5) + "." + AktJahr; if (DatumString.length == 6) /* 06.06. oder 6.6.96 */ if (DatumString.indexOf(".",0) == 2) DatumString = DatumString.substring(0,2) + "." + DatumString.substring(3,5) + "." + AktJahr; else if (DatumString.indexOf(".",0) == 1) DatumString = "0" + DatumString.substring(0,1) + ".0" + DatumString.substring(2,3) + "." + PrfJhdt(DatumString, 6); if (DatumString.length == 7) /* 6.12.96 oder 12.6.96 */ if (DatumString.indexOf(".",0) == 1) DatumString = "0" + DatumString.substring(0,1) + "." + DatumString.substring(2,4) + "." + PrfJhdt(DatumString, 7); else if (DatumString.indexOf(".",0) == 2) DatumString = DatumString.substring(0,2) + ".0" + DatumString.substring(3,4) + "." + PrfJhdt(DatumString, 7); if (DatumString.length == 8) /* 12.12.96 oder 6.6.1996 */ if (DatumString.indexOf(".",0) == 2) DatumString = DatumString.substring(0,2) + "." + DatumString.substring(3,5) + "." + PrfJhdt(DatumString, 8); else if (DatumString.indexOf(".",0) == 1) DatumString = "0" + DatumString.substring(0,1) + ".0" + DatumString.substring(2,3) + "." + DatumString.substring(4,8); if (DatumString.length == 9) /* 6.12.1996 oder 12.6.1996 */ if (DatumString.indexOf(".",0) == 1) DatumString = "0" + DatumString.substring(0,1) + "." + DatumString.substring(2,4) + "." + DatumString.substring(5,9); else if (DatumString.indexOf(".",0) == 2) DatumString = DatumString.substring(0,2) + ".0" + DatumString.substring(3,4) + "." + DatumString.substring(5,9); return DatumString; } function checkYear(element){ var i, j, k, ch; var checkOK = "0123456789"; var allValid = true; var allNum = ""; var checkStr = element.value; errfound = false; for (i = 0; i < checkStr.length; i++){ ch = checkStr.charAt(i); for (j = 0; j < checkOK.length; j++) if (ch == checkOK.charAt(j)) break; if (j == checkOK.length){ allValid = false; break; } allNum += ch; } Result = parseInt(checkStr); if (Result < 60) Result+=2000; else if (Result < 1900) Result+=1900; if ((Result < 1900) || (Result > 2060)) allValid = false; if (!allValid){ FhlrMldng(element, sInvalidYear); return false; } element.value = Result; return true; } function checkMonth(element){ var i, j, k, ch; var checkOK = "0123456789"; var allValid = true; var allNum = ""; var checkStr = element.value; errfound = false; for (i = 0; i < checkStr.length; i++){ ch = checkStr.charAt(i); for (j = 0; j < checkOK.length; j++) if (ch == checkOK.charAt(j)) break; if (j == checkOK.length){ allValid = false; break; } allNum += ch; } Result = parseInt(checkStr); if ((Result < 1) || (Result > 12)) allValid = false; if (!allValid){ FhlrMldng(element, sInvalidMonth); return false; } return true; } function setCurrentDate(textbox) { var d; var s; d = new Date(); s = ''; s = s + d.getDate(); s = s + '.'; s = s + (d.getMonth()+1); s = s + '.'; s = s + d.getFullYear(); textbox.value = DisplayDate(s); } function CheckDateField(textbox) { textbox.value = DisplayDate(textbox.value); errfound = false; if (!ValidDate(textbox.value)) { FhlrMldng(textbox, sInvalidDate); setCurrentDate(textbox); } return !errfound; /* true if there are no errors */ } function makeDate(fld) { fld.value = DisplayDate(fld.value); var ok = ValidDate(fld.value); if (!ok) FhlrMldng(fld, sInvalidDate); return ok; } function jsDateInit() { } jsDateInit();function setTime(item) { var h, m; h = new Date().getHours(); m = new Date().getMinutes(); if(h<10) h = "0" + h; if(m<10) m = "0" + m; item.value = h + ":" + m; } /* Eingabefeld VON und BIS validieren (item == (xx.xx or xx:xx))*/ function ValidTime(item){ if (item.length == 0) return true; if (item.length > 5) return false; if (item.charCodeAt(0) < 48) return false; /* < 0 */ if (item.charCodeAt(0) > 50) return false; /* > 2 */ if (item.charCodeAt(0) == 50){ /* = 2 */ if (item.charCodeAt(1) < 48) return false; /* < 0 */ if (item.charCodeAt(1) > 51) return false;} /* > 3 */ else{ if (item.charCodeAt(1) < 48) return false; /* < 0 */ if (item.charCodeAt(1) > 57) return false;} /* > 9 */ if (item.charCodeAt(2) != 58 && item.charCodeAt(2) != 46) return false; /* <> : */ if (item.charCodeAt(3) < 48) return false; /* < 0 */ if (item.charCodeAt(3) > 53) return false; /* > 5 */ if (item.charCodeAt(4) < 48) return false; /* < 0 */ if (item.charCodeAt(4) > 57) return false; /* > 9 */ return true; } function DisplayTime(ZeitString){ if(ZeitString.length==8) ZeitString = ZeitString.substring(0, 5); /*x or xx*/ sSymbol = ":"; if (ZeitString.indexOf(".",0) >= 0) sSymbol = "."; if (ZeitString.indexOf(sSymbol,0) == -1) if (ZeitString.length == 1) ZeitString = "0" + ZeitString + ":00"; else if (ZeitString.length == 2) ZeitString = ZeitString + ":00"; else if (ZeitString.length == 3) ZeitString = ZeitString.substring(0,2) + ":" + ZeitString.substring(2,3) + "0"; else if (ZeitString.length == 4) ZeitString = ZeitString.substring(0,2) + ":" + ZeitString.substring(2,4); /*: or :x or :xx*/ if (ZeitString.indexOf(sSymbol,0) == 0) if (ZeitString.length == 1) //":" ZeitString = "00:00"; else if (ZeitString.length == 2) //":x" ZeitString = "00" + ":" + ZeitString.substring(1,2) + "0"; else //":xx" ZeitString = "00" + ":" + ZeitString.substring(1,3); /*x: or x:x or x:xx*/ if (ZeitString.indexOf(sSymbol,0) == 1) if (ZeitString.length == 2) ZeitString = "0" + ZeitString.substring(0,1) + ":" + "00"; else if (ZeitString.length == 3) ZeitString = "0" + ZeitString.substring(0,1) + ":" + ZeitString.substring(2,3) + "0"; else if (ZeitString.length == 4) ZeitString = "0" + ZeitString.substring(0,1) + ":" + ZeitString.substring(2,4) ; /*xx: or xx:x or xx:xx*/ if (ZeitString.indexOf(sSymbol,0) == 2) if (ZeitString.length == 3) ZeitString = ZeitString.substring(0,2) + ":" + "00"; if (ZeitString.length == 4) ZeitString = ZeitString.substring(0,2) + ":" + ZeitString.substring(3,4) + "0"; if (ZeitString.length == 5) ZeitString = ZeitString.substring(0,2) + ":" + ZeitString.substring(3,5); return ZeitString; } function getTimeFromString(tm) { return new Date("December 17, 1995 " + tm + ":00").getTime(); } function setHoursFromTimes(fldFrom, fldUntil, fldHours) { var hours = calcHoursFromTimes(fldFrom, fldUntil); if(hours==null) return; fldHours.value = DecAusg(hours); } function calcHoursFromTimes(fldFrom, fldUntil) { if(fldFrom == null || fldUntil == null) return null; if(fldFrom.value == "" || fldUntil.value == "") return null; var amount; if(getTimeFromString(fldFrom.value) == getTimeFromString(fldUntil.value)) amount = 0; else if(getTimeFromString(fldFrom.value) < getTimeFromString(fldUntil.value)){ amount = getTimeFromString(fldUntil.value) - getTimeFromString(fldFrom.value); amount /= 3600000; } else if(getTimeFromString(fldFrom.value) > getTimeFromString(fldUntil.value)){ amount = (getTimeFromString(fldUntil.value) - getTimeFromString(fldFrom.value)); amount += 86400000; amount /= 3600000; } return Rndn(amount); } function makeTime(fld) { var ok; fld.value = DisplayTime(fld.value); ok = ValidTime(fld.value); if(!ok) FhlrMldng(fld, sInvalidTimeFormat); return ok; } function openProjectInformation(prjnr) { if(prjnr==null || prjnr == '') { alert('Kein Projekt ausgewählt!'); } else { window.open('ProjectInformation.asp?ProjektNr=' + prjnr, 'ProjectInfo', 'menubar=no, scrollbars=yes, toolbar=no, location=no, height=450, width=1150, resizable=1'); } } function openMitarbeiterInfo(mitarbeitercode, dtm) { var x=0, y=0; //default values if (document.all) { x = window.screenTop + 100; y = window.screenLeft + 100; } else //if (document.layers) { x = window.screenY + 100; y = window.screenX + 100; } if(mitarbeitercode==null || mitarbeitercode == '') { alert('Kein Mitarbeiter ausgewählt!'); } else if(dtm==null || dtm == '') { alert('Kein Datum ausgewählt!'); } else { if (document.all) { window.open('MitarbeiterInfo.asp?Dtm=' + dtm + '&MA=' + mitarbeitercode + '', 'MitarbeiterInfo', 'menubar=no, scrollbars=no, toolbar=no, height=250, top='+x+',width=350,left='+y+',resizable=1'); } else { window.open('MitarbeiterInfo.asp?Dtm=' + dtm + '&MA=' + mitarbeitercode + '', 'MitarbeiterInfo', 'menubar=no, scrollbars=no, toolbar=no, height=250,width=350, resizable=1'); // wird in Firefox mit Doppelbildschirm nicht korrekt positioniert //window.open('MitarbeiterInfo.asp?Dtm=' + dtm + '&MA=' + mitarbeitercode + '', 'MitarbeiterInfo', 'menubar=no, scrollbars=no, toolbar=no, height=250, screenX='+x+',width=350 ,screenY='+y+', resizable=1'); } //window.open('MitarbeiterInfo.asp?Dtm=' + dtm + '&MA=' + mitarbeitercode + '', 'MitarbeiterInfo', 'menubar=no, scrollbars=no, toolbar=no, height=250, top='+x+',screenX='+x+',width=350,left='+y+',screenY='+y+', resizable=1'); } }