/*
***************************************************
* 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 += '';
Res += ' |
';
}
Res += '' +
'<<' + aDate.getFullYear();
Res += '>>';
Res += ' | | ';
Res += '<<'
Res += MonthToStr(aDate.getMonth());
Res += '>>'
Res += ' | |
';
Res += '' + S_PO + ' | ' + S_UT + ' | ' + S_ST + ' | ' + S_CT + ' | ' + S_PA + ' | ' + S_SO + ' | ' + S_NE + ' |
';
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 += '';
AStyle = 'style="color:FFFFFF; font-weight:bold;"';
}
else
{
Res += ' | ';
AStyle = '';
}
Res = Res + '' + D + '';
Res += ' | ';
D++;
Col++;
}
}
while (Col <= 7)
{
Res += ' | ';
Col++;
}
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 += '';
Res += '';
Res += ' |
';
if (aIx > (Arr.length - 1))
aIx = Arr.length - 1;
while ((j + 1) < Arr.length)
{
j++;
AStyle = 'style="text-align:left; ';
AStyle += '"';
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 + '' + Arr[j] + '';
Res += ' |
';
}
aIx = (j > aIx) ? aIx : j;
Res += '
';
Res += '' + aIx + '
';
Res += '' + OrigItems + '
';
//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 = '';
Obj.innerHTML = s;
}*/
}
}
function HideErii(aInputObj)
{
if (Obj = DocObj(aInputObj + "_eri"))
Obj.style.backgroundImage = "";
}
function CenterObj(aObjName, aBaseObjName)
{
if (Obj = Dob(aObjName))
{
Obj.style.position = 'absolute';
if (document.all)
{
r = Obj.getClientRects();
w = r[0].right - r[0].left;
h = r[0].bottom - r[0].top;
if (aBaseObjName)
Body = Dob(aBaseObjName);
else
Body = Dob('_body');
r = Body.getClientRects();
ScrWidth = r[0].right - r[0].left;
ScrHeight = r[0].bottom - r[0].top;
ScrOfsTop = Body.scrollTop;
ScrOfsLeft = Body.scrollLeft;
}
else
{
/*if (aBaseObjName)
{
Body = Dob(aBaseObjName);
ScrWidth = Body.offsetWidth;
ScrHeight = Body.scrollHeight;
ScrOfsTop = window.screenY + window.scrollY;
ScrOfsLeft = window.screenX + window.scrollX;
}
else*/
{
ScrWidth = window.innerWidth;
ScrHeight = window.innerHeight;
ScrOfsTop = window.screenY + window.scrollY;
ScrOfsLeft = window.screenX + window.scrollX;
}
w = Obj.offsetWidth;
h = Obj.offsetHeight;
}
Obj.style.top = ScrOfsTop + Math.floor((ScrHeight - h) / 2);
Obj.style.left = ScrOfsLeft + Math.floor((ScrWidth - w) / 2);
//alert('top: ' + Obj.style.top + ' left:' + Obj.style.left);
}
}
function TopRightObj(aObjName)
{
if (Obj = Dob(aObjName))
{
Obj.style.position = 'absolute';
if (document.all)
{
r = Obj.getClientRects();
w = r[0].right - r[0].left;
h = r[0].bottom - r[0].top;
Body = Dob('_body');
r = Body.getClientRects();
ScrWidth = r[0].right - r[0].left - 10;
ScrHeight = r[0].bottom - r[0].top;
ScrOfsTop = Body.scrollTop;
ScrOfsLeft = Body.scrollLeft;
}
else
{
ScrWidth = window.innerWidth;
ScrHeight = window.innerHeight;
ScrOfsTop = window.screenY + window.scrollY;
ScrOfsLeft = window.screenX + window.scrollX;
w = Obj.offsetWidth;
h = Obj.offsetHeight;
}
Obj.style.top = ScrOfsTop + 10;
Obj.style.left = ScrOfsLeft + ScrWidth - w - 20;
}
}
function setObjRect(rectarr, objname)
{
if (obj = Dob(objname))
{
l = rectarr[0];
t = rectarr[1];
w = rectarr[2];
h = rectarr[3];
obj.style.left = l;
obj.style.top = t;
if (w)
obj.style.width = w;
if (h)
obj.style.height = h;
}
}
function setLookupDivRect(editobjname, divobjname, parentobjname)
{
rectarr = getObjRect(editobjname);
parentobj = Dob(parentobjname);
l = rectarr[0];
t = rectarr[1];
t += h;
p = editobjname.parentNode;
while ((p != null) && (p != parentobj))
{
t += p.offsetTop;
l += p.offsetLeft;
p = p.parentNode;
}
setObjRect(Array(l, t, 0, 0), divobjname);
}
function getObjRect(aObjName)
{
if (Obj = Dob(aObjName))
{
if (document.all)
{
r = Obj.getClientRects();
w = r[0].right - r[0].left;
h = r[0].bottom - r[0].top;
Body = Dob('_body');
r = Body.getClientRects();
t = Body.scrollTop + r[0].top;
l = Body.scrollLeft + r[0].left;
}
else
{
t = Obj.offsetTop;// + window.screenY + window.scrollY;
l = Obj.offsetLeft;// + window.screenX + window.scrollX;
w = Obj.offsetWidth;
h = Obj.offsetHeight;
}
return Array(l, t, w, h);
}
else
return null;
}
function ImxShowImg(aPrevName, aUrlArr, aCurrIx, aPrevWidth, aPrevHeight)
{
Width = aUrlArr.arr[aCurrIx][1];
Height = aUrlArr.arr[aCurrIx][2];
WHRatio = Width / Height;
BordLeft = Math.floor(aPrevWidth / 10);
BordTop = Math.floor(aPrevHeight / 10);
ImgW = aPrevWidth - (BordLeft * 2);
ImgH = aPrevHeight - (BordTop * 2);
h = Math.floor(ImgW / WHRatio);
if (h > 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;
}
}
}