/* *************************************************** * Název: rdvcl.js * * Popis: Knihovna základních PHP komponent - JS * * Autor: Radek Drápal - Incosoft.cz * * Email: info@incosoft.cz * * Web : http://www.incosoft.cz * *************************************************** */ var Lookups = new Array(); var ModalLookup = null; var PATH_IMAGEROOT = "img/"; var S_LEDEN = "leden"; var S_UNOR = "únor"; var S_BREZEN = "březen"; var S_DUBEN = "duben"; var S_KVETEN = "květen"; var S_CERVEN = "červen"; var S_CERVENEC = "červenec"; var S_SRPEN = "srpen"; var S_ZARI = "září"; var S_RIJEN = "říjen"; var S_LISTOPAD = "listopad"; var S_PROSINEC = "prosinec"; var S_PO = "Po"; var S_UT = "Út"; var S_ST = "St"; var S_CT = "Čt"; var S_PA = "Pá"; var S_SO = "So"; var S_NE = "Ne"; function ScanEventKeyCode(event, key) { var KeyCode = 0; if (event.which) KeyCode = event.which; else if (event.keyCode) KeyCode = event.keyCode; return (KeyCode == key); } function GetEventKeyCode(event) { var KeyCode = 0; if (event.which) KeyCode = event.which; else if (event.keyCode) KeyCode = event.keyCode; return KeyCode; } function DocObj(aName) { return document.getElementById(aName); } function Dob(aName) { return document.getElementById(aName); } function AdjInputValue(aValue) { return aValue; } function AdjInputInt(aValue) { var res = ''; for (var i = 0; i < aValue.length; i++) if ((aValue.charAt(i) >= '0') && (aValue.charAt(i) <= '9')) res += aValue.charAt(i); return res; } function AdjInputFloat(aValue) { return aValue; } function SelectNextObj(aNextObjName) { if (aNextObjName) { var NextObj = DocObj(aNextObjName); if (NextObj) NextObj.focus(); } } function SetInputValue(aObjName, aValue) { var Obj = DocObj(aObjName); if (Obj) if (Obj.selectedIndex) Obj.selectedIndex = aValue; else Obj.value = aValue; } function SelectNextObjOnEnter(aEvent, aNextObjName) { var KeyCode = 0; var NextObj = DocObj(aNextObjName); if (aEvent.which) KeyCode = aEvent.which; else if (aEvent.keyCode) KeyCode = aEvent.keyCode; switch (KeyCode) { case 13 : aEvent.returnValue = false; aEvent.cancel = true; if (NextObj) NextObj.focus(); break; default : break; } } function OnInputLeave(aEvent, aName, aAdjProc) { Obj = DocObj(aName); if (Obj) { Obj.style.backgroundColor = COLOR_INPUT_BACKGROUND; Obj.style.borderColor = COLOR_INPUT_BORDER; Obj.style.color = COLOR_INPUT_FONT; /*if (aAdjProc) Obj.value = aAdjProc(Obj.value); else Obj.value = AdjInputValue(Obj.value);*/ Obj.style.fontWeight = 'normal'; /*if (ErrDiv = DocObj(DIV_ERROR_MSG)) ErrDiv.innerHTML = "";*/ } } function TableRowOut(aEvent, aRow, aRowIxVar, aRowIx) { var Tr = DocObj(aRow); if ((aRowIxVar.rowix != aRowIx) && (Tr)) { Tr.style.backgroundColor = ''; for (j = 0; j < Tr.cells.length - 1; j++) { Tr.cells.item(j).style.color = COLOR_TABLE_FONT; } } } function TableRowOutColor(aEvent, aRow, aRowIxVar, aRowIx, aColor) { var Tr = DocObj(aRow); if ((aRowIxVar.rowix != aRowIx) && (Tr)) { Tr.style.backgroundColor = ''; for (j = 0; j < Tr.cells.length - 1; j++) { Tr.cells.item(j).style.color = aColor; } } } function TableRowOver(aEvent, aRow, aRowIxVar, aRowIx) { var Tr = DocObj(aRow); if ((aRowIxVar.rowix != aRowIx) && (Tr)) { Tr.style.backgroundColor = COLOR_TABLE_ROWOVER; for (j = 0; j < Tr.cells.length - 1; j++) { Tr.cells.item(j).style.color = COLOR_TABLE_ROWOVERFONT; } } } function SelectTableRow(aTableId, aTableRow, aRowIxVar) { var Obj = null; if (aRowIxVar) aRowIxVar.rowix = aTableRow; var i = 0; while (true) { i++; Obj = DocObj(aTableId + '_' + i); if (Obj) { Obj.style.backgroundColor = (i == aTableRow) ? (COLOR_SELECTEDTABLEROW) : ''; if (DocObj(aTableId + '_dbpos' + i)) DocObj(aTableId + '_dbpos' + i).innerHTML = (i == aTableRow) ? ((IMAGE_DBPOS != '') ? ('') : ' ') : ' '; //DocObj(aTableId + '_dbpos' + i).innerHTML = (i == aTableRow) ? '' : ' '; if (Obj = Dob(aTableId + '_six')) Obj.value = aTableRow; } else break; } } function NumSeparStr(aStr, aSep) { if (aStr == '') Res = 0 else { Res = 1; for (i = 0; i < aStr.length; i++) if (aStr.charAt(i) == aSep) Res++ } return Res; } function GetSeparStr(aStr, aIx, aSep) { var i = 0; var Res = ""; while (i < aStr.length) if (aIx == 0) { while ((i < aStr.length) && (aStr.charAt(i) != aSep)) { Res = Res + aStr.charAt(i); i++; } break; } else { if (aStr.charAt(i) == aSep) aIx--; i++; } return Res; } function ShowCalendar(aLookup, aOwnerInput, aNextObj) { HideLookups(); if (aLookup != "") { var Div1 = DocObj(aLookup); var Own = DocObj(aOwnerInput); if (Div1) { Div1.style.visibility = "visible"; Calendar(aLookup, ParseDate(DocObj(aOwnerInput).value), aOwnerInput, aNextObj, false); } if (Own) { Own.style.backgroundColor = COLOR_INPUT_FOCUSEDBACKGROUND; Own.style.borderColor = COLOR_INPUT_FOCUSEDBORDER; Own.style.color = COLOR_INPUT_FOCUSEDFONT; Own.style.fontWeight = 'bold'; } } } function OnCalendarChange(aEvent, aInputName, aCalDiv, aNextObj) { Calendar(aCalDiv, ParseDate(DocObj(aInputName).value), aInputName, aNextObj); } function IsLeapYear(aYear) { return ((aYear % 4) == 0) && (((aYear % 100) != 0) || ((aYear % 400) == 0)); } function MonthToStr(aMonth) { switch (aMonth) { case 0 : return S_LEDEN; case 1 : return S_UNOR; case 2 : return S_BREZEN; case 3 : return S_DUBEN; case 4 : return S_KVETEN; case 5 : return S_CERVEN; case 6 : return S_CERVENEC; case 7 : return S_SRPEN; case 8 : return S_ZARI; case 9 : return S_RIJEN; case 10 : return S_LISTOPAD; case 11 : return S_PROSINEC; default : return ""; } } function ParseDate(aDateStr) { DStr = GetSeparStr(aDateStr, 0, '.'); MStr = GetSeparStr(aDateStr, 1, '.'); YStr = GetSeparStr(aDateStr, 2, '.'); Res = new Date(); if (DStr.length > 0) Res.setDate(DStr); if (MStr.length > 0) Res.setMonth(MStr - 1); if (YStr.length > 0) Res.setYear(YStr); return Res; } function DateToStr(aDate) { return aDate.getDate() + '.' + (aDate.getMonth() + 1) + '.' + aDate.getFullYear(); } function SetCalendarDate(aDiv, aInput, aDay, aMonth, aYear, aNextObj, aHideCloseBtn) { var Dt = new Date(); Dt.setFullYear(aYear); Dt.setMonth(aMonth); Dt.setDate(aDay); DocObj(aInput).value = DateToStr(Dt); if (aNextObj != '') SelectNextObj(aNextObj); else { Calendar(aDiv, Dt, aInput, aNextObj, aHideCloseBtn); DocObj(aInput).focus(); } } function ChangeCalendarDate(aDiv, aInput, aDay, aMonth, aYear, aNextObj, aHideCloseBtn) { var Dt = new Date(); Dt.setFullYear(aYear); Dt.setMonth(aMonth); Dt.setDate(aDay); DocObj(aInput).value = DateToStr(Dt); Calendar(aDiv, Dt, aInput, aNextObj, aHideCloseBtn); DocObj(aInput).focus(); } function adjDay(aDay, aMonth, aYear) { switch (aMonth) { case 2 : if (IsLeapYear(aYear) && (aDay > 29)) return 29; else if (aDay > 28) return 28 else return aDay; case 4 : case 6 : case 9 : case 11 : if (aDay > 30) return 30; else return aDay; default : return aDay; } } function Calendar(aDiv, aDate, aInput, aNextObj, aHideCloseBtn) { Res = ''; // width="' + Dob(aDiv).clientWidth + '" if (!aHideCloseBtn) { Res += ''; } Res += ''; switch (aDate.getMonth()) { case 0 : case 2 : case 4 : case 6 : case 7 : case 9 : case 11 : MaxD = 31; break; case 1 : MaxD = IsLeapYear(aDate.getYear()) ? 29 : 28; break; default : MaxD = 30; break; } FirstMDay = new Date(); FirstMDay.setFullYear(aDate.getFullYear()); FirstMDay.setMonth(aDate.getMonth()); FirstMDay.setDate(1); switch (FirstMDay.getDay()) { case 0 : // Ne D = -5; break; default : // Po - So D = 2 - FirstMDay.getDay() break; } Col = 1; while (D <= MaxD) { if (Col == 1) { Res += ''; }; if (Col > 7) { Res += ''; Col = 1; } else if (D < 1) { Res += ''; D++; Col++; } else { if (D == aDate.getDate()) { Res += ''; D++; Col++; } } while (Col <= 7) { Res += ''; Col++; } Res += '
'; Res += ''; Res += '
' + '' + S_UT + '' + S_ST + '' + S_CT + '' + S_PA + '' + S_SO + '' + S_NE + '
 '; AStyle = 'style="color:FFFFFF; font-weight:bold;"'; } else { Res += ''; AStyle = ''; } Res = Res + ''; Res += ' 
'; DocObj(aDiv).innerHTML = Res; } function HideCalendar(aLookup, aOwnerInput) { //HideLookup(aLookup, aOwnerInput); var Input = DocObj(aOwnerInput); if (Input.value != '') Input.value = DateToStr(ParseDate(DocObj(aOwnerInput).value)); OnInputLeave(null, aOwnerInput); ModalLookup = null; ModalInput = null; } function OnCalendarKeyUp(aEvent, aInput, aCalDiv, aNextObj) { Calendar(aCalDiv, ParseDate(DocObj(aInput).value), aInput, aNextObj); } function OnCalendarKeyDown(event, aInput, aCalDiv, aNextObj) { var KeyCode = 0; var EdObj = DocObj(aInput); if (event.which) KeyCode = event.which; else if (event.keyCode) KeyCode = event.keyCode; switch (KeyCode) { case 13 : SelectNextObjOnEnter(event, aNextObj); event.returnValue = false; event.cancel = true; break; case 37 : case 39 : break; case 40 : D = ParseDate(EdObj.value); D.setDate(D.getDate() - 1); EdObj.value = DateToStr(D); Calendar(aCalDiv, D, aInput, aNextObj); event.returnValue = false; event.cancel = true; break; case 38 : D = ParseDate(EdObj.value); D.setDate(D.getDate() + 1); EdObj.value = DateToStr(D); Calendar(aCalDiv, D, aInput, aNextObj); event.returnValue = false; event.cancel = true; break; default : break; } }; function FormatProcParams(aParams) { var Res = "("; var i = 0; while (i < aParams.length) { if (i > 0) Res += ","; Res += "" + aParams[i] + ""; i++; } Res += ")"; return Res; } function AnswItemsToArr(aItems) { var i = 0; var j = 0; var Res = new Array(); // odstraním key form i = aItems.search(''); if (j < 0) j = aItems.search(''); if ((i >= 0) && (j >= 0)) { aItems = aItems.substr(0, i) + aItems.substr(j + 7, aItems.length - 7 - j); } i = 0; while ((aItems.charCodeAt(i) == 10) || (aItems.charCodeAt(i) == 13) || (aItems.charCodeAt(i) == 32)) i++; aItems = aItems.substr(i, aItems.length - i); i = aItems.length - 1; while ((i >= 0) && ((aItems.charCodeAt(i) == 10) || (aItems.charCodeAt(i) == 13) || (aItems.charCodeAt(i) == 32))) i--; aItems = aItems.substr(0, i + 1); while (aItems.length > 0) { i = aItems.search(SEP_LOOKUPITEMS); if (i >= 0) { Res[Res.length] = aItems.substr(0, i); aItems = aItems.substr(i + 1, aItems.length - i); } else { Res[Res.length] = aItems; aItems = ""; } } return Res; } function ParseParamValue(aParam) { var i = aParam.search('='); if (i < 0) return ""; else return UrlDecode(aParam.substr(i + 1, aParam.length - i - 1)); } function ParseParamValueNoUrlDecode(aParam) { var i = aParam.search('='); if (i < 0) return ""; else return aParam.substr(i + 1, aParam.length - i - 1); } function ParseAjaxAnswer(aRawAnsw) { var Res = aRawAnsw; i = Res.search(''); if (i < 0) i = Res.search(''); if (i >= 0) { Res = Res.substr(i + 6, Res.length - 6 - i); } i = Res.search(''); if (i < 0) i = Res.search(''); if (i >= 0) { Res = Res.substr(0, i); } return Res; } function CP1250CharFromCode(aDecVal) { switch (aDecVal) { case 0xCC : return 'Ě'; case 0xC9 : return 'É'; case 0x8D : return 'Ť'; case 0x8E : return 'Ž'; case 0xC8 : return 'Č'; case 0xC1 : return 'Á'; case 0xCF : return 'Ď'; case 0xD2 : return 'Ň'; case 0xCD : return 'Í'; case 0xD9 : return 'Ů'; case 0xDB : return 'Ű'; case 0x8A : return 'Š'; case 0xDA : return 'Ú'; case 0xDD : return 'Ý'; case 0xD8 : return 'Ř'; case 0x9E : return 'ž'; case 0xE9 : return 'é'; case 0xE1 : return 'á'; case 0xE8 : return 'č'; case 0x9A : return 'š'; case 0xED : return 'í'; case 0xEC : return 'ě'; case 0xF9 : return 'ů'; case 0xFD : return 'ý'; case 0xD3 : return 'Ó'; case 0x9d : return 'ť'; case 0xf3 : return 'ó'; case 0xfa : return 'ú'; case 0xef : return 'ď'; case 0xf2 : return 'ň'; case 0xF8 : return 'ř'; default : return String.fromCharCode(aDecVal); }; } function ParseParamName(aParam) { var i = aParam.search('='); if (i < 0) return ""; else return UrlDecode(aParam.substr(0, i)); } function ParseParamValues(aParams) { var Res = new Array(); while (aParams.length > 0) { j = aParams.search('&'); if (j < 0) { Param = aParams aParams = ""; } else { Param = aParams.substr(0, j); aParams = aParams.substr(j + 1, aParams.length - j - 1); } Res[Res.length] = ParseParamValue(Param); } return Res; } function ParseParams(aParams) { var Res = new Array(); while (aParams.length > 0) { j = aParams.search('&'); if (j < 0) { Param = aParams aParams = ""; } else { Param = aParams.substr(0, j); aParams = aParams.substr(j + 1, aParams.length - j - 1); } Res[Res.length] = Param; } return Res; } function HexCharIx(aHexChar) { aHexChar = aHexChar.toUpperCase(); switch (aHexChar) { case '0' : return 0; case '1' : return 1; case '2' : return 2; case '3' : return 3; case '4' : return 4; case '5' : return 5; case '6' : return 6; case '7' : return 7; case '8' : return 8; case '9' : return 9; case 'A' : return 10; case 'B' : return 11; case 'C' : return 12; case 'D' : return 13; case 'E' : return 14; case 'F' : return 15; default : return -1; } } function HexToDec(aHexStr) { var Res = 0; var StrIx = aHexStr.length; var j; for (var i = 0; i < aHexStr.length; i++) { StrIx--; j = HexCharIx(aHexStr.charAt(i)); if (j >= 0) Res = Res + (j * Math.pow(16, StrIx)); } return Res; } function HexStringToStr(aStr) { Res = ''; i = 0; while (i < aStr.length) { HStr = aStr.substr(i, 2); Res += String.fromCharCode(HexToDec(HStr)); i += 2; } return Res; } function UrlDecode(aUrlString) { var i = 0; var Res = ""; var Chr = ""; while (i < aUrlString.length) { Chr = aUrlString.charAt(i); if (Chr == "%") { DecVal = HexToDec(aUrlString.substr(i + 1, 2)); if (DecVal == 43) Res += ' '; else Res += CP1250CharFromCode(DecVal); i += 3; } else if (Chr == "+") { Res += ' '; i++; } else { Res += Chr; i++; } } return Res; } function UrlWideDecode(aUrlString) { var i = 0; var Res = ""; var Chr = ""; while (i < aUrlString.length) { Chr = aUrlString.charAt(i); if (Chr == "%") { DecVal = HexToDec(aUrlString.substr(i + 1, 4)); if (DecVal == 43) Res += ' '; else Res += String.fromCharCode(DecVal); i += 5; } else if (Chr == "+") { Res += ' '; i++; } else { Res += Chr; i++; } } return Res; } function IntToHex(aInt) { return Number(aInt).toString(16); } function StrToHex(aString) { Res = ""; for (i = 0; i < aString.length; i++) { if (aString.charCodeAt(i) < 256) { c = IntToHex(aString.charCodeAt(i)); while (c.length < 2) c = '0' + c; //Res += "," + aString.charCodeAt(i) + "=" + c; Res += c; } } //alert(Res); return Res; } function UrlEncode(aString) { var i = 0; var Res = ""; var Chr = ""; while (i < aString.length) { Chr = aString.charAt(i); if (((Chr >= 'a') && (Chr <= 'z')) || ((Chr >= 'A') && (Chr <= 'Z')) || ((Chr >= '0') && (Chr <= '9')) || (Chr == '_')) Res += Chr; else Res += '%' + IntToHex(aString.charCodeAt(i)); i++; } //alert(Res); return Res; } function UrlWideEncode(aString) { var i = 0; var Res = ""; var Chr = ""; while (i < aString.length) { Chr = aString.charAt(i); if (((Chr >= 'a') && (Chr <= 'z')) || ((Chr >= 'A') && (Chr <= 'Z')) || ((Chr >= '0') && (Chr <= '9')) || (Chr == '_')) Res += Chr; else { c = IntToHex(aString.charCodeAt(i)); while (c.length < 4) c = '0' + c; Res += '%' + c; } i++; } //alert(Res); return Res; } function ParamValueByName(aParams, aParamName) { var Res = ""; var j = 0; var PaName = ""; var Param = ""; while (aParams.length > 0) { if ((aParams.length > 0) && (aParams.substr(0, 1) == '?')) aParams = aParams.substr(1, aParams.length - 1); j = aParams.search('&'); if (j < 0) { Param = aParams; aParams = ""; } else { Param = aParams.substr(0, j); aParams = aParams.substr(j + 1, aParams.length - j - 1); } PaName = ParseParamName(Param); if (PaName == aParamName) { Res = ParseParamValue(Param); break; } } return Res; } function ParamArrValueByName(aParamsArr, aParamName) { var Res = ""; for (i = 0; i < aParamsArr.length; i++) { if (ParseParamName(aParamsArr[i]) == aParamName) { Res = ParseParamValue(aParamsArr[i]); break; } } return Res; } function ParseAnswer(aAnswData, aErrHandler, aSuccHandler) { var ParamName = ""; var ParamValue = ""; var Res = 0; var i = aAnswData.search(''); if (i < 0) i = aAnswData.search(''); if (i >= 0) { aAnswData = aAnswData.substr(i + 6, aAnswData.length - 6 - i); } i = aAnswData.search(''); if (i < 0) i = aAnswData.search(''); if (i >= 0) { aAnswData = aAnswData.substr(0, i); } var j = aAnswData.length - 1; while ((aAnswData.charCodeAt(j) == 10) || (aAnswData.charCodeAt(j) == 13) || (aAnswData.charCodeAt(j) == 32)) j--; aAnswData = aAnswData.substr(0, j + 1); i = aAnswData.search(RES_PX); if (i >= 0) { aAnswData = aAnswData.substr(i + 1, aAnswData.length - i - 1); // result value i = aAnswData.search('&'); if (i < 0) i = aAnswData.length; ParamName = ParseParamName(aAnswData.substr(0, i)); ParamValue = ParseParamValue(aAnswData.substr(0, i)); aAnswData = aAnswData.substr(i + 1, aAnswData.length - i - 1); if (ParamName == RES_VALUE) { Res = (ParamValue == RV_SUCC) ? 1 : 0; if (Res) { if (aSuccHandler) aSuccHandler(aAnswData); } else if (aErrHandler) { // error object and message aErrHandler(ParamValueByName(aAnswData, RES_OBJ), ParamValueByName(aAnswData, RES_MSG)); } } } return Res; } function OnVclInputEnter(aEvent, aName) { HideLookups(); Obj = DocObj(aName); if (Obj) { Obj.style.backgroundColor = COLOR_INPUT_FOCUSEDBACKGROUND; Obj.style.borderColor = COLOR_INPUT_FOCUSEDBORDER; Obj.style.color = COLOR_INPUT_FOCUSEDFONT; //Obj.style.fontWeight = 'bold'; if (Obj.select) Obj.select(); } } function SelectNextVclObj(aNextObjName) { if (aNextObjName) { var NextObj = DocObj(aNextObjName); if (NextObj) NextObj.focus(); } } function isnumber(value) { res = value.length > 0 ? true : false; if (res) { for (i = 0; i < value.length; i++) { if ((value.charCodeAt(i) < 48) || (value.charCodeAt(i) > 57)) { res = false; break; } } } return res; //return ((value > 0) || (value == '0')) ? true : false; } function FormatVclFormAjaxParam(aFormObj) { if (aFormObj.selectedIndex != null) { if (isnumber(aFormObj.value)) return FormatVclCgiParam(aFormObj.name, aFormObj.value); else return FormatVclCgiParam(aFormObj.name, aFormObj.selectedIndex); } else if (aFormObj.checked) return FormatVclCgiParam(aFormObj.name, aFormObj.checked); else return FormatVclCgiParam(aFormObj.name, aFormObj.value); } function FormatVclFormAjaxParamArr(aForm) { var ParamArr = new Array(); var FormElements = document.forms[aForm].elements; for (var i = 0; i < FormElements.length; i++) { if (FormElements[i].name.length > 0) ParamArr[ParamArr.length] = FormatVclFormAjaxParam(FormElements[i]); } return ParamArr; } function FormatVclFormAjaxParamArrTypes(aForm, aTypeArr) { var ParamArr = new Array(); var FormElements = document.forms[aForm].elements; for (var i = 0; i < FormElements.length; i++) { if (FormElements[i].name.length) { fldtype = (aTypeArr[FormElements[i].name] != null) ? aTypeArr[FormElements[i].name] : 0; //alert(FormElements[i].name + ' ' + fldtype); switch (fldtype) { case 7 : ParamArr[ParamArr.length] = FormatVclCgiParam(FormElements[i].name, UrlWideEncode(FormElements[i].value)); break; case 8 : if ((FormElements[i].value.length > 0) && isnumber(FormElements[i].value)) { //ParamArr[ParamArr.length] = FormatVclFormAjaxParam(FormElements[i]); ParamArr[ParamArr.length] = FormatVclCgiParam(FormElements[i].name, FormElements[i].value); //alert(ParamArr[ParamArr.length - 1]); } else { ParamArr[ParamArr.length] = FormatVclCgiParam(FormElements[i].name, FormElements[i].selectedIndex); //alert('xxx'); } break; default : ParamArr[ParamArr.length] = FormatVclFormAjaxParam(FormElements[i]); break; } } } return ParamArr; } function FormatVclFormAjaxParamArrNames(aForm, aNamesArr, aKeyArr, aOtherParamsArr) { var ParamArr = new Array(); var FormElements = document.forms[aForm].elements; for (var i = 0; i < FormElements.length; i++) { if (FormElements[i].selectedIndex) ParamArr[ParamArr.length] = FormatVclCgiParam(aNamesArr[i], FormElements[i].selectedIndex); else if (aKeyArr[i]) ParamArr[ParamArr.length] = FormatVclCgiParam(aNamesArr[i], ParseParamValue(aKeyArr[i].keyvalue)); else ParamArr[ParamArr.length] = FormatVclCgiParam(aNamesArr[i], FormElements[i].value); } if (aOtherParamsArr) for (i = 0; i < aOtherParamsArr.length; i++) { ParamArr[ParamArr.length] = aOtherParamsArr[i]; } return ParamArr; } function SetVclFormAjaxParamArr(aForm, aParams) { var FormElements = document.forms[aForm].elements; var Value = ""; if (FormElements) { for (var i = 0; i < FormElements.length; i++) { Value = UrlDecode(ParamValueByName(aParams, FormElements[i].name)); if (FormElements[i].selectedIndex) FormElements[i].selectedIndex = Value; else if (FormElements[i].checked) FormElements[i].checked = (Value == 'true') || (Value > 0); else FormElements[i].value = Value; } } } function SelectNextVclObjOnEnter(aEvent, aNextObjName) { var KeyCode = 0; var NextObj = DocObj(aNextObjName); if (aEvent.which) KeyCode = aEvent.which; else if (aEvent.keyCode) KeyCode = aEvent.keyCode; switch (KeyCode) { case 13 : aEvent.returnValue = false; aEvent.cancel = true; if (NextObj) NextObj.focus(); break; default : break; } } function AddLookup(aLookupName) { Lookups[Lookups.length] = new Array(aLookupName, "", "", "", ""); } function AdjIxLookupDivName(aDivName) { return aDivName + '_ix'; } function AdjItemsLookupDivName(aDivName) { return aDivName + '_items'; } function InitLookup(aLookupName, aOnSelectItem, aOnSelectParams, aOnNextObj, aOnNextParams) { if ((i = FindLookup(aLookupName)) >= 0) { Lookups[i][1] = aOnSelectItem; Lookups[i][2] = aOnSelectParams; Lookups[i][3] = aOnNextObj; Lookups[i][4] = aOnNextParams; } } function FindLookup(aLookupName) { var Res = -1; for (var i = 0; i < Lookups.length; i++) if (aLookupName == Lookups[i][0]) { Res = i; break; } return Res; } function ShowLookup(aLookup, aOwnerInput) { HideLookups(); if (aLookup != "") { var Div1 = DocObj(aLookup); var Own = DocObj(aOwnerInput); if (Div1) { ItemsDiv = DocObj(AdjItemsLookupDivName(aLookup)); if (ItemsDiv) Div1.innerHTML = Lookup(aLookup, ItemsDiv.innerHTML, aOwnerInput, -1); Div1.style.visibility = "visible"; ModalLookup = Div1; ModalInput = Own; } if (Own) { Own.style.backgroundColor = COLOR_INPUT_FOCUSEDBACKGROUND; Own.style.borderColor = COLOR_INPUT_FOCUSEDBORDER; Own.style.color = COLOR_INPUT_FOCUSEDFONT; //Own.style.fontWeight = 'bold'; Own.select(); } } } function HideLookup(aLookup, aOwnerInput) { if (aLookup != "") { Ldiv = DocObj(aLookup); if (Ldiv) { Ldiv.style.visibility = "hidden"; IxObj = DocObj(AdjIxLookupDivName(aLookup)); if (IxObj) IxObj.innerHTML = '-1'; } } OnInputLeave(null, aOwnerInput); ModalLookup = null; ModalInput = null; } function HideLookups() { for (var i = 0; i < Lookups.length; i++) { //alert(Lookups[i][0]); Obj = DocObj(Lookups[i][0]); if (Obj) Obj.style.visibility = "hidden"; } ModalLookup = null; ModalInput = null; } function Lookup(aDiv, aItems, aInput, aIx) { var OrigItems = aItems; var i = 0; var j = -1; if (aItems.length == 0) var Res = ""; else { var Arr = AnswItemsToArr(aItems); var Res = ''; var OnSelectItem = ""; var OnSelectItemParams = ""; var OnNextItem = ""; var OnNextItemParams = ""; if ((i = FindLookup(aDiv)) >= 0) { OnSelectItem = Lookups[i][1]; OnSelectItemParams = Lookups[i][2]; OnNextItem = Lookups[i][3]; OnNextItemParams = Lookups[i][4]; } Res += ''; if (aIx > (Arr.length - 1)) aIx = Arr.length - 1; while ((j + 1) < Arr.length) { j++; AStyle = 'style="text-align:left; '; AStyle += '"'; Res += ''; } aIx = (j > aIx) ? aIx : j; Res += '
'; Res += ''; Res += '
'; AStyle = 'style="display:block;'; if (j == aIx) { AStyle += ' background-color: #' + COLOR_LOOKUP_SELECTEDROW + ';'; AStyle += ' border-top: solid 1px #' + COLOR_LOOKUP_SELECTEDROWBORDER + ';'; AStyle += ' border-bottom: solid 1px #' + COLOR_LOOKUP_SELECTEDROWBORDER + ';'; } AStyle += '"'; Res = Res + ''; Res += '
'; Res += ''; Res += ''; //DocObj(aDiv).innerHTML = Res; } return Res; } function VclObj(aName) { return document.getElementById(aName); } function OnVclButtonLeave(aEvent, aName) { Obj = VclObj(aName); if (Obj) { Obj.style.backgroundImage = 'url("img/btn-blue.gif")'; } } function OnVclButtonEnter(aEvent, aName) { Obj = VclObj(aName); if (Obj) { Obj.style.backgroundImage = 'url("img/btn-orange.gif")'; HideLookups(); } } function FormatVclPageParam(aParamName, aParamValue) { return '?' + aParamName + '=' + aParamValue; } function FormatVclCgiParam(aName, aValue) { s = ''; if (aValue) { is_number = true; for (i = 0; i < aValue.length; i++) { switch (aValue.charAt(i)) { case '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' : break; default : is_number = false; break; } if (!is_number) break; } if (is_number) s = aValue; else { for (i = 0; i < aValue.length; i++) { switch (aValue.charCodeAt(i)) { case 13, 10 : s += ' '; break; case 37 : // % s += '%%'; break; case 43 : // + s += '%2B'; break; case 38 : // & s += '%26'; break; default: s += aValue.charAt(i); break; } } } } return aName + '=' + s; }; function FmVcp(aName, aValue) { return aName + '=' + aValue; }; function FormatVclCgiParams(aParams) { Res = ""; var i; for(i = 0; i < aParams.length; i++) { if (Res.length == 0) Res = aParams[0]; else Res = Res + "&" + aParams[i]; }; return Res; }; function FmVcps(aParams) { return FormatVclCgiParams(aParams); } function FmEap(aName) { var Arr = Array(); if (Obj = DocObj(aName)) { if (Obj.selectedIndex) { Arr[0] = FormatVclCgiParam(aName, Obj.selectedIndex); Arr[2] = FormatVclCgiParam(aName + '_value', Obj.value); } else Arr[0] = FormatVclCgiParam(aName, Obj.value); } Arr[1] = FormatVclCgiParam('par_edn', aName); return Arr; } function SendVclAjaxRequest(aCBHandler, aUrl, aParams, aUseGet) { if ((aParams) && (aParams.length > 0)) { var xmlhttp = null; if (window.XMLHttpRequest) { xmlhttp = new XMLHttpRequest(); } else if (window.ActiveXObject) { try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (eror) { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } } if (!xmlhttp) return false; if (aUseGet) xmlhttp.open("GET", aUrl + '?' + aParams, true); else xmlhttp.open("POST", aUrl, true); xmlhttp.onreadystatechange = function() {aCBHandler(xmlhttp);}; xmlhttp.send(aParams); } else return false; } function OnVclInputLeave(aEvent, aName, aChangeBgd, aAdjProc) { if (aChangeBgd == null) aChangeBgd = true; Obj = DocObj(aName); if (Obj) { if (aChangeBgd) Obj.style.backgroundColor = COLOR_INPUT_BACKGROUND else Obj.style.backgroundColor = ''; Obj.style.borderColor = COLOR_INPUT_BORDER; Obj.style.color = COLOR_INPUT_FONT; /*if (!Obj.files) if (aAdjProc) Obj.value = aAdjProc(Obj.value); else if (!Obj.selectedIndex) Obj.value = AdjInputValue(Obj.value);*/ Obj.style.fontWeight = 'normal'; } } function OnVclSelectLeave(aEvent, aName, aChangeBgd) { if (aChangeBgd == null) aChangeBgd = true; Obj = DocObj(aName); if (Obj) { if (aChangeBgd) Obj.style.backgroundColor = COLOR_INPUT_BACKGROUND else Obj.style.backgroundColor = ''; Obj.style.borderColor = COLOR_INPUT_BORDER; Obj.style.color = COLOR_INPUT_FONT; Obj.style.fontWeight = 'normal'; } } function OnLookupKeyDown(event, aLookupName, aSelectValueHandler, aNextObjHandler) { var KeyCode = 0; var Div = DocObj('Lookup_' + aLookupName); var IxObj = DocObj(AdjIxLookupDivName('Lookup_' + aLookupName)); var ItemObj = DocObj(AdjItemsLookupDivName('Lookup_' + aLookupName)); var EdObj = DocObj(aLookupName); if (event.which) KeyCode = event.which; else if (event.keyCode) KeyCode = event.keyCode; switch (KeyCode) { case 13 : aSelectValueHandler('Lookup_' + aLookupName, aLookupName); event.returnValue = false; event.cancel = true; aNextObjHandler; break; case 37 : case 39 : break; case 38 : i = IxObj.innerHTML; i--; if (i >= 0) Div.innerHTML = Lookup('Lookup_' + aLookupName, ItemObj.innerHTML, aLookupName, i); event.returnValue = false; event.cancel = true; break; case 40 : i = IxObj.innerHTML; i++; Div.innerHTML = Lookup('Lookup_' + aLookupName, ItemObj.innerHTML, aLookupName, i); event.returnValue = false; event.cancel = true; break; default : break; } } function OnLookupKeyUp(event, aLookupName, aAction, aKeyUpEvent, aActionParams) { if (aKeyUpEvent) aKeyUpEvent; var EdObj = DocObj(aLookupName); var KeyCode = 0; if (event.which) KeyCode = event.which; else if (event.keyCode) KeyCode = event.keyCode; switch (KeyCode) { case 13 : case 37 : case 38 : case 39 : break; case 40 : break; default : olkuParams = new Array(FormatVclCgiParam(PARAM_NAME_INPUTVALUE, EdObj.value)); if (aActionParams) for(i = 0; i < aActionParams.length; i++) olkuParams[olkuParams.length] = aActionParams[i]; aAction(olkuParams); var Div = DocObj('Lookup_' + aLookupName); if ((Div) && (!Div.visible)) Div.style.visibility = 'visible'; break; } } function ShowComp(aCompNameArr, aZIx) { for (var i = 0; i < aCompNameArr.length; i++) { var Div = DocObj(aCompNameArr[i]); if (Div) { Div.style.visibility = 'visible'; Div.style.zIndex = aZIx; } } } function HideComp(aCompNameArr) { for (var i = 0; i < aCompNameArr.length; i++) { var Div = DocObj(aCompNameArr[i]); if (Div) { Div.style.visibility = 'hidden'; Div.style.zIndex = 0; } } } function SetEfDesc(aEditorKeyFieldDesc, aParamArr) { for (var i = 0; i < aEditorKeyFieldDesc.length; i++) { for (var j = 0; j < aParamArr.length; j++) { if (aEditorKeyFieldDesc[i][0] == ParseParamName(aParamArr[j])) { var EdObj = DocObj(aEditorKeyFieldDesc[i][0]); if (EdObj) if (EdObj.selectedIndex) EdObj.selectedIndex = ParseParamValue(aParamArr[j]) else EdObj.value = ParseParamValue(aParamArr[j]); } } } } function SetEkNames(aEditorName, aEditorNames, aKeyVarNames, aParamArr) { for (var i = 0; i < aEditorNames.length; i++) { for (var j = 0; j < aParamArr.length; j++) { if (aEditorNames[i] == ParseParamName(aParamArr[j])) { var EdObj = DocObj(aEditorName + '_f' + i); if (EdObj) { if (aKeyVarNames[i]) { aKeyVarNames[i].keyvalue = aParamArr[j]; for (var k = 0; k < aParamArr.length; k++) { if (aEditorNames[i] + '_lookval' == ParseParamName(aParamArr[k])) { if (EdObj.selectedIndex) EdObj.selectedIndex = ParseParamValue(aParamArr[k]) else EdObj.value = ParseParamValue(aParamArr[k]); break; } } } else { if (EdObj.selectedIndex) EdObj.selectedIndex = ParseParamValue(aParamArr[j]) else EdObj.value = ParseParamValue(aParamArr[j]); } } break; } } } } // ajax action support function AxOk(xmlhttp) { return (xmlhttp.readyState == 4) && (xmlhttp.status == 200) && (xmlhttp.responseText); } function AxAdDp(aParamArr, aDynParams) { if (aDynParams) { for (i = 0; i < aDynParams.length; i++) aParamArr[aParamArr.length] = aDynParams[i]; } return aParamArr; } function AxSend(aCBHandler, aUrl, aParams, aUseGet) { SendVclAjaxRequest(aCBHandler, aUrl, aParams, aUseGet); } function AxAdp(aDynParamsNames, aParamArr) { for (var i = 0; i < aDynParamsNames.length; i++) aParamArr[aParamArr.length] = FmVcp(aDynParamsNames[i], DocObj(aDynParamsNames[i]).value); return aParamArr; } // base editor support function BeErr(aEditorName, aEdObjNames, aShowErrHandler, aErrObj, aErrMsg) { var ErrInput = null; if (aErrObj != '') { for (var i = 0; i < aEdObjNames.length; i++) { if (aEdObjNames[i] == aErrObj) { ErrInput = DocObj(aEditorName + '_f' + i); aShowErrHandler(i, aErrMsg); break; } } if (ErrInput) ErrInput.focus(); } return (ErrInput); } function BeShe(aErrImageName, aEditorName, aFieldIx, aMsg) { var Img = DocObj(aErrImageName); if (Img) { Img.style.top = Number(BASEEDITOR_FIRSTITEMTOP) + (aFieldIx * Number(BASEEDITOR_ITEMHEIGHTSTEP)); } var ErrDiv = DocObj(aEditorName + '_errmsgeditor'); if (ErrDiv) { ErrDiv.innerHTML = aMsg; } } function BeClr(aKeyFldDesc, aFieldCount, aEditorName) { for (var i = 0; i < aKeyFldDesc.length; i++) { if (aKeyFldDesc[i][2] > 0) SetInputValue(aKeyFldDesc[i][0], aKeyFldDesc[i][1]); } for (i = 0; i < aFieldCount; i++) SetInputValue(aEditorName + '_f' + i, ''); } function ShowErii(aInputObj, aErrMsg) { if (Obj = DocObj(aInputObj + "_eri")) { Obj.style.backgroundImage = "url('" + PATH_IMAGEROOT + "error-s.gif')"; Obj.title = aErrMsg; /*if (aErrMsg.length > 0) { s = ' ImgH) { h = ImgH; w = Math.floor(ImgH * WHRatio); } else w = ImgW; if (Img = DocObj(aPrevName + '_img')) { Img.src = aUrlArr.arr[aCurrIx][0]; if (document.all) { r = PrevObj.getClientRects(); pl = 0;//r[0].left; pt = 0;//r[0].top; Img.style.top = Math.floor((aPrevHeight - h) / 2); Img.style.left = Math.floor((aPrevWidth - w) / 2); Img.style.width = w; Img.style.height = h; if (ImgBtnClose = DocObj(aPrevName + '_btnclose')) { ImgBtnClose.style.top = r[0].top + 10 + document.body.scrollTop; ImgBtnClose.style.left = r[0].right - 40 + document.body.scrollLeft; ImgBtnClose.style.visibility = 'visible'; } if (ImgBtnNext = DocObj(aPrevName + '_btnnext')) { ImgBtnNext.style.top = r[0].top + 10 + document.body.scrollTop; ImgBtnNext.style.left = r[0].right - 80 + document.body.scrollLeft; ImgBtnNext.style.visibility = 'visible'; } if (ImgBtnPrev = DocObj(aPrevName + '_btnprev')) { ImgBtnPrev.style.top = r[0].top + 10 + document.body.scrollTop; ImgBtnPrev.style.left = r[0].right - 120 + document.body.scrollLeft; ImgBtnPrev.style.visibility = 'visible'; } } else { pl = PrevObj.offsetLeft; pt = PrevObj.offsetTop; pw = PrevObj.offsetWidth; ph = PrevObj.offsetHeight; Img.style.top = pt + Math.floor((aPrevHeight - h) / 2); Img.style.left = pl + Math.floor((aPrevWidth - w) / 2); Img.style.width = w; Img.style.height = h; if (ImgBtnClose = DocObj(aPrevName + '_btnclose')) { ImgBtnClose.style.top = pt + 10; ImgBtnClose.style.left = pl + pw - 40; ImgBtnClose.style.visibility = 'visible'; } if (ImgBtnNext = DocObj(aPrevName + '_btnnext')) { ImgBtnNext.style.top = pt + 10; ImgBtnNext.style.left = pl + pw - 80; ImgBtnNext.style.visibility = 'visible'; } if (ImgBtnPrev = DocObj(aPrevName + '_btnprev')) { ImgBtnPrev.style.top = pt + 10; ImgBtnPrev.style.left = pl + pw - 120; ImgBtnPrev.style.visibility = 'visible'; } } } } function ImxPrevAni(aPrevName, aImgUrl, aPrevWidth, aPrevHeight, aWidth, aHeight, aUrlArr, aUrlArrIx) { var HStep = Math.floor(aPrevWidth / 15); var VStep = Math.floor(aPrevHeight / 15); var HDone = false; var VDone = false; var pw = 0; var ph = 0; var pt = 0; var pl = 0; ParentObj = DocObj(aPrevName); if (PrevObj = DocObj(aPrevName + '_vw')) { if (document.all) { var r = PrevObj.getClientRects(); Prevow = r[0].right - r[0].left; Prevoh = r[0].bottom - r[0].top; if ((Prevoh + VStep) > aPrevHeight) { ph = aPrevHeight; VDone = true; } else ph = Prevoh + VStep; if ((Prevow + HStep) > aPrevWidth) { pw = aPrevWidth; HDone = true; } else pw = Prevow + HStep; rp = ParentObj.getClientRects(); Prpow = rp[0].right - rp[0].left; Prpoh = rp[0].bottom - rp[0].top; x = rp[0].left + Math.floor(Prpow / 2); y = rp[0].top + Math.floor(Prpoh / 2); PrevObj.style.left = x - Math.floor(pw / 2) + document.body.scrollLeft; PrevObj.style.top = y - Math.floor(ph / 2) + document.body.scrollTop; PrevObj.style.width = pw; PrevObj.style.height = ph; } else { if ((PrevObj.offsetHeight + VStep) > aPrevHeight) { ph = aPrevHeight; VDone = true; } else ph = PrevObj.offsetHeight + VStep; if ((PrevObj.offsetWidth + HStep) > aPrevWidth) { pw = aPrevWidth; HDone = true; } else pw = PrevObj.offsetWidth + HStep; x = ParentObj.offsetLeft + Math.floor(ParentObj.offsetWidth / 2); y = ParentObj.offsetTop + Math.floor(ParentObj.offsetHeight / 2); PrevObj.style.left = x - Math.floor(pw / 2); PrevObj.style.top = y - Math.floor(ph / 2); PrevObj.style.width = pw; PrevObj.style.height = ph; } } if (!(HDone && VDone)) window.setTimeout("ImxPrevAni('" + aPrevName + "', '" + aImgUrl + "', " + aPrevWidth + "," + aPrevHeight + "," + aWidth + "," + aHeight + "," + aUrlArr.name + "," + aUrlArrIx.name + ");", 50); else { ImxShowImg(aPrevName, aUrlArr, aUrlArrIx.currix, aPrevWidth, aPrevHeight); } } function ImxPrev(aPrevName, aImgUrl, aPrevWidth, aPrevHeight, aWidth, aHeight, aUrlArr, aUrlArrIx, aCurrIx) { if (BtnClose = DocObj(aPrevName + '_btnclose')) BtnClose.style.visibility = 'hidden'; if (BtnNext = DocObj(aPrevName + '_btnnext')) BtnNext.style.visibility = 'hidden'; if (BtnPrev = DocObj(aPrevName + '_btnprev')) BtnPrev.style.visibility = 'hidden'; aUrlArrIx.currix = aCurrIx; if (PrevObj = DocObj(aPrevName + '_vw')) { ParentObj = DocObj(aPrevName); /*if (document.all) { var r = ParentObj.getClientRects(); PrevObj.style.top = r[0].top + (r[0].bottom - r[0].top - aPrevHeight) / 2; PrevObj.style.left = r[0].left + (r[0].right - r[0].left - aPrevWidth) / 2; } else { PrevObj.style.top = ParentObj.offsetTop + (ParentObj.offsetHeight - aPrevHeight) / 2; PrevObj.style.left = ParentObj.offsetLeft + (ParentObj.offsetWidth - aPrevWidth) / 2; }*/ PrevObj.style.width = 0; PrevObj.style.height = 0; PrevObj.style.visibility = 'visible'; if (Img = DocObj(aPrevName + '_img')) { Img.style.width = 0; Img.style.height = 0; Img.src = aImgUrl; } window.setTimeout("ImxPrevAni('" + aPrevName + "', '" + aImgUrl + "', " + aPrevWidth + "," + aPrevHeight + "," + aWidth + "," + aHeight + "," + aUrlArr.name + "," + aUrlArrIx.name + ");", 10); } } function ImxClose(aPrevName) { if (PrevObj = DocObj(aPrevName + '_vw')) PrevObj.style.visibility = 'hidden'; if (BtnClose = DocObj(aPrevName + '_btnclose')) BtnClose.style.visibility = 'hidden'; if (BtnClose = DocObj(aPrevName + '_btnnext')) BtnClose.style.visibility = 'hidden'; if (BtnClose = DocObj(aPrevName + '_btnprev')) BtnClose.style.visibility = 'hidden'; } function ImxGoNext(aPrevName, aPrevWidth, aPrevHeight, aUrlArr, aUrlArrIx) { if (PrevObj = DocObj(aPrevName + '_vw')) { if (aUrlArrIx.currix < aUrlArr.arr.length - 1) { Img = DocObj(aPrevName + '_img'); aUrlArrIx.currix++; ImxShowImg(aPrevName, aUrlArr, aUrlArrIx.currix, aPrevWidth, aPrevHeight) } } } function ImxGoPrev(aPrevName, aPrevWidth, aPrevHeight, aUrlArr, aUrlArrIx) { if (PrevObj = DocObj(aPrevName + '_vw')) { if (aUrlArrIx.currix > 0) { Img = DocObj(aPrevName + '_img'); aUrlArrIx.currix--; ImxShowImg(aPrevName, aUrlArr, aUrlArrIx.currix, aPrevWidth, aPrevHeight) } } } function cookie_set(name, value) { value = encodeURIComponent(value); var date = new Date(); date.setTime(date.getTime() + 31536000000); // 365 * 24 * 60 * 60 * 1000 value += '; expires=' + date.toGMTString(); document.cookie = name + '=' + value + '; '; } function cookie_getall() { return document.cookie.split(';'); } function cookie_getname(nameandvalue) { res = nameandvalue.split('=')[0]; return res.replace(' ', ''); } function cookie_getvalue(nameandvalue) { return nameandvalue.split('=')[1]; } function cookie_saveeditvalue(editname) { cookie_set(editname, Dob(editname).value); } function cookie_readeditvalue(editname) { cookiearr = cookie_getall(); for (i = 0; i < cookiearr.length; i++) { if (cookie_getname(cookiearr[i]) == editname) { Dob(editname).value = decodeURIComponent(cookie_getvalue(cookiearr[i])); break; } } }