// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // © Copyright 2000, Calypso Systems, Inc. // All Rights Reserved. // // Description: CSX Client Asp Functions // // Who When What // ------------------------------------------------ // lGoodman@calsys.com 01/17/00 Created // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // var MODULE_NAME = "xClient.asp" var oRSApp = null; var sMsgServerUrl = "/csx3/csxPage.asp"; var sMsgServerUrl = String(window.location); var iIndex = sMsgServerUrl.indexOf("csx3/"); if(iIndex>0) { var iLen = sMsgServerUrl.length; sMsgServerUrl = sMsgServerUrl.substr(0,iIndex+5) + "csxPage.asp"; } else { sMsgServerUrl = "/csx3/csxPage.asp"; } // Global XML Bags var gChangeBag = new xNode(); var gStatusBag = new xNode(); /* Functions processChange(sKey,sField,sValue) processDataChange(sStateKey,sTable,sRow,sField,sValue) csxOpenPage(sClassName, sMethod, sTarget, sData) commitDataChanges(sStateKey) csxSendBag(sClass, sMethod, oMsgBag) sendBag(sClass, sMethod, oMsgBag) sendChanges(sClass,sMethod) sendDataChanges(sClass,sMethod) sendMessage(sClass,sMethod) processBrowserCommands xMsg() xMsg.send() */ // Constants var sQuote = '"'; function callbackJS(oFunc) { setTimeout(oFunc,100); } // Booleans used by linked in debug pages var bDebugProcessChange; var bDebugStatus; var bDebugMessage; function xMsg() { this.returnType="BAG"; this.send = xMsg_Send; } function csxSendBagCallback(oMsg, sResult) { var oRet = new xNode(); oRet.loadXML(sResult) oMsg.returnBag = oRet; oMsg.onReturn(oMsg); } function xMsg_Send() { csxSendBag(this.serverClass,this.serverMethod,this.sourceBag,this); } var gTempClass; var gTempMethod; var gTempBag; function sendAsync() { sendBag(gTempClass,gTempMethod,gTempBag); } // ---------------------------------------------------- // SEND MESSAGE ASYNC- Creates a bag and sends it to the server // ---------------------------------------------------- function sendMessageAsync(sClass,sMethod) { // Calls an object on the server, builds the bag based on addiltional args // Updates and html on the browser var oBag = new xNode(); var iParm = 0; for (iParm=2;iParm gMaxNormalMsgSize) { // Start with the un escaped to make sure we do not split on an escaped character var sMsgText = oMsgBag.getXML(); oObjRef.sMsgText = sMsgText; oObjRef.sUrl = sUrl; oObjRef.sChunkRootUrl = sUrl + "&" + "PostToFile=1"; oObjRef.sChunkUrl = oObjRef.sChunkRootUrl + "&" + "MsgChunk=" + encodeQueryString(oObjRef.sMsgText.substr(0,gChunkSize)); oObjRef.lChunkPos = gChunkSize; xSendMessage(oObjRef.sChunkUrl,csxSendBagChunkCallback,oObjRef); } else { // Call unchunked message sUrl = sUrl + "&" + "Message=" + sMsgText; xSendMessage(sUrl,csxSendBagCallback,oObjRef); } //return sRet; } // ----------------------------------------- // csxSubmitChanges // ----------------------------------------- function csxSubmitChanges(sClassName, sMethod, sTarget) { csxSubmitBag(sClassName,sMethod,sTarget,gChangeBag) } // ---------------------------------------------------- // PROCESS DATA CHANGE // ---------------------------------------------------- function processDataChange(sStateKey,sTable,sRow,sField,sValue) { var vState = gChangeBag.nodes("STATE", sStateKey); var vTable = vState.nodes("TABLE",sTable); var vRow = vTable.nodes("ROW",sRow); var vField = vRow.nodes("FIELD",sField); vField.value = sValue if (bDebugProcessChange==true) { updateDebugProcessChange(gChangeBag); } } // ---------------------------------------------------- // PROCESS CHANGE // ---------------------------------------------------- function processChange(sKey,sField,sValue) { var vState = gChangeBag.nodes("CHANGE", sKey); var vChange = vState.nodes("FIELD",sField); vChange.value = sValue if (bDebugProcessChange==true) { updateDebugProcessChange(gChangeBag); } } function csxSetLocationCallback(sUrl) { window.location = sUrl } // ----------------------------------------- // csxOpenPage // ----------------------------------------- function csxOpenPage(sClassName, sMethod, sTarget, sData) { var sOut = "/csx3/csxPage.asp?"; sOut = sOut + "AppName=" + gAppName; sOut = sOut + "&Label=" + "CSXGETPAGE"; sOut = sOut + "&Class=" + sClassName; sOut = sOut + "&Method=" + sMethod; if (sData) { sOut = sOut + "&Message=" + escape(sData); } else { sOut = sOut + "&Message=" ; } window.status = "Loading..." setTimeout("csxSetLocationCallback('" + sOut + "')",1); } // ---------------------------------------------------- // PROCESS BROWSER COMMANDS // ---------------------------------------------------- function processBrowserCommands(oMsg) { var oBC = oMsg.returnBag.nodes("BROWSERCOMMAND") // TO DO Remove Browser Commands from Bag // Update the browser from the broswer command for (var i=0; i< oBC.count();i++) { var oItem = oBC.nodes(i); var sType = oItem.property("TYPE").value var oCmd = new xCommand(); if (sType =="REDIRECT") { if (oCmd.supports.redirect) { oCmd.redirect(unescape(oItem.value)); } } if (sType =="SETFOCUS") { if (oCmd.supports.setFocus) { oCmd.setFocus(oItem.property("ELEMENT").value); } } if (sType =="OUTERHTML") { if (oCmd.supports.outerHTML) { oCmd.outerHTML(oItem.property("ELEMENT").value,oItem.value); } } if (sType =="INNERHTML") { if (oCmd.supports.innerHTML) { oCmd.innerHTML(oItem.property("ELEMENT").value,oItem.value); } } if (sType =="EXECUTEJAVASCRIPT") { if (oCmd.supports.executeJavascript) { oCmd.executeJavascript(oItem.value); } } if (sType =="INNERTEXT") { if (oCmd.supports.innerText) { oCmd.innerText(oItem.property("ELEMENT").value,oItem.value); } } if (sType =="ALERT") { if (oCmd.supports.alert) { oCmd.alert(oItem.value); } } } } // ---------------------------------------------------- // pcsCheckBoxValue // ---------------------------------------------------- function pcsCheckBoxValue(el) { if (nav.ns4) {return el.value} else { if (el.checked) return el.VALUECHECKED else return el.VALUEUNCHECKED } }