// Copyright 2004 Software FX Inc. var SFX_currentIconOver = ""; var SFX_currentMenuOn = 0; var SFX_currentxAdd =0; var SFX_currentyAdd =0; var SFX_currentRightClick = ""; var SFX_currentUIObjectId = ""; var SFX_currentRightClickY = 0; var SFX_currentRightClickX = 0; var SFX_currentThirdLevelMenu = ""; var SFX_currentThirdLevelMenuOn = 0; var SFX_currentChartName = ""; var SFX_delayedThirdLevelMenu = ""; var SFX_timerIntervalThirdLevel = ""; var SFX_onCallbackReadyDelegate; var SFX_userCallbackResult = ""; var SFX_useWebServiceForCallbacks = false; var SFX_xmlHttpHandler = null; var SFX_callbackWebServiceUrl = "/chartfx70/callbackservice/service.asmx/"; var SFX_newImage = null; var SFX_processing = false; var UIOBJECT_SEPARATOR = '|'; var SPECIAL_COMMAND_PREFIX = '*'; var RESPONSE_SEPARATOR = '|'; var SUBCOMMAND_SEPARATOR = ','; var REGULAR_RESPONSE_PREFIX = '#'; var SPECIAL_RESPONSE_PREFIX = '*'; var ERROR_RESPONSE_PREFIX = '!'; var SPECIAL_COMMAND_EXPORTDATA = 'D'; var SPECIAL_COMMAND_SETFONT = 'F'; var SFX_isIE = navigator.appName=="Microsoft Internet Explorer"; function MM_findObj(n, d) { //v4.01 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i and var sep1 = map.indexOf('>'); map = map.substring(sep1+1,map.length-7); SFX_ReplaceImage(context,url,map); } function SFX_ProcessResponseActiveX (context, url, map) { var obj = MM_findObj(context); if (url.substring(0,1) == '#') obj.EmbeddedData = url.substring(2); else obj.DataPath = url; SFX_CallCallbackReadyDelegate(context); } function SFX_ProcessResponseFlash (context, url, map) { var obj; if (document.embeds) obj = document.embeds.namedItem(context); if (!obj) obj = MM_findObj(context); obj.LoadMovie(0,url); SFX_CallCallbackReadyDelegate(context); } function SFX_ProcessResponseSVG (context, url, map) { var obj; if (document.embeds) obj = document.embeds.namedItem(context); if (!obj) obj = MM_findObj(context); if (SFX_isIE) obj.src = url; else { var replacement = obj.cloneNode(true); replacement.src = url; obj.parentNode.replaceChild(replacement,obj); } SFX_CallCallbackReadyDelegate(context); } function SFX_ProcessResponseChartAsText (context, url, map) { SFX_ProcessResponseImage(context,url,map); // TODO: Update Text Chart (Accessibility) // trim off and var sep1 = map.indexOf('>'); map = map.substring(sep1+1,map.length-7); SFX_ReplaceImage(context,url,map); } function SFX_RefreshCallbackData () { __theFormPostData = ""; __theFormPostCollection = new Array(); WebForm_InitCallback(); } function SFX_ReplaceImage (context, url, map) { var mapObj = MM_findObj(context+'Map'); if (mapObj) mapObj.innerHTML = map; var imageObj = MM_findObj(context); if (SFX_isIE) { // Prevent flickering var newImage = imageObj.cloneNode(false); SFX_newImage = newImage; newImage.onreadystatechange = SFX_OnImageDownloaded; newImage.src = url; } else { imageObj.src = url; SFX_CallCallbackReadyDelegate(context); } } function SFX_OnImageDownloaded () { if (SFX_newImage == null) return; if (SFX_newImage.readyState == 'complete') { SFX_newImage.onreadystatechange = null; var oldImage = MM_findObj(SFX_newImage.id); if (oldImage != null) oldImage.swapNode(SFX_newImage); SFX_CallCallbackReadyDelegate(SFX_newImage.id); SFX_newImage = null; } } function SFX_CallCallbackReadyDelegate (chartId) { if (SFX_onCallbackReadyDelegate) SFX_onCallbackReadyDelegate(chartId,SFX_userCallbackResult); } function SFX_SendChartCommand (chartName, command, postback) { SFX_currentChartName = chartName; SFX_currentUIObjectId = ""; SFX_SendCommand(command,postback); } function SFX_SendCommand (command, postback) { SFX_ClearLayers(); SFX_SendAction(SFX_currentChartName,'A',command + UIOBJECT_SEPARATOR + SFX_currentUIObjectId,postback); } function SFX_SendCommandContext (command, context, postback) { SFX_currentUIObjectId = context; SFX_SendCommand(command,postback); } function SFX_SendUserCallback (chartName, param, postback) { SFX_SendAction(chartName,'U',param,postback); } function SFX_SendAction (chartName, actionCode, actionParam, postback) { if (SFX_processing) return; //JAVA specific hack: //Include an extra parameter to differentiate chart callback from user submit on the same form. if(__theFormPostData) { __theFormPostData += "CHART_CALLBACK_FLAG=TRUE&"; } var encodedAction = actionCode + ':' + actionParam; if (postback) SFX_PostBack(chartName,encodedAction); else { SFX_processing = true; if (SFX_useWebServiceForCallbacks) SFX_CallbackWebService(chartName,encodedAction); else SFX_Callback(chartName,encodedAction); } } function SFX_CallbackWebService (context, encodedCommand) { SFX_InvokeWebService(context,'ExecuteAction',SFX_OnCallbackWebServiceReady,encodedCommand); } function SFX_InvokeWebService (context, methodName, responseHandler, action) { var viewStateObj = MM_findObj('__' + context + '_VIEWSTATE'); var viewState= viewStateObj.value; var xmlHttpHandler = SFX_xmlHttpHandler = SFX_LoadXmlHttpHandler(); xmlHttpHandler.onreadystatechange = responseHandler; xmlHttpHandler.open("POST",SFX_callbackWebServiceUrl + methodName,true); xmlHttpHandler.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xmlHttpHandler.send('id=' + context + '&viewState=' + viewState + '&action=' + action); } function SFX_OnCallbackWebServiceReady () { if (SFX_xmlHttpHandler.readyState == '4') { if (SFX_xmlHttpHandler.status != 200) { alert('Web Service Error: ' + SFX_xmlHttpHandler.statusText); SFX_processing = false; return; } SFX_ProcessWebServiceResponse(SFX_xmlHttpHandler.responseXML); SFX_xmlHttpHandler = null; } } function SFX_ProcessWebServiceResponse (responseXml, actionMethod) { var returnValue = '';// Mozilla splits response into several nodes for (i = 0; i < responseXml.documentElement.childNodes.length; i++) returnValue += responseXml.documentElement.childNodes[i].data; SFX_OnCallbackReady(returnValue,'',actionMethod); } function SFX_LoadXmlHttpHandler () { var xmlHttpHandler = null; try { xmlHttpHandler = new ActiveXObject('Msxml2.XMLHTTP'); } catch (e) { } if (xmlHttpHandler == null) { try { xmlHttpHandler = new ActiveXObject('Microsoft.XMLHTTP'); } catch (e) { } } // Gecko / Mozilla / Firefox if ((xmlHttpHandler == null) && (typeof(XMLHttpRequest) != 'undefined')) xmlHttpHandler = new XMLHttpRequest(); return xmlHttpHandler; } // Client-Side commands function SFX_PrintDialog (id) { SFX_ClearLayers(); SFX_PrintImage(SFX_currentChartName); /* var chartImage = MM_findObj(SFX_currentChartName); SFX_ClearLayers(); document.execCommand("Print",true,chartImage); */ } function SFX_PrintImage (imgId) { var chartImage = MM_findObj(SFX_currentChartName); var imgSrc = chartImage.src; var w = window.open ('', '_blank', 'menubar=0,location=0,status=0,resizable=0,scrollbars=0,titlebar=0,status=0,toolbar=0,linkbar=0,width=1,height=1'); var html = 'Chart'; html += ''; html += '<\/BODY><\/HTML>'; w.document.open(); w.document.write(html); w.document.close(); } function SFX_Print (id) { SFX_ClearLayers(); SFX_PrintImage(SFX_currentChartName); } function SFX_CopyBitmap (id) { if (window.clipboardData) { // If I take out this alert it doesn't work ! alert("The Chart image is in the clipboard.","Notification"); var chartImage = MM_findObj(SFX_currentChartName); var oRng=document.body.createControlRange(); oRng.addElement(chartImage); oRng.execCommand("Copy"); } else alert('Sorry, your browser does not support this feature.'); SFX_ClearLayers(); } function SFX_CopyMetafile (id) { alert('Copy Metafile: Not Implemented'); SFX_ClearLayers(); } function SFX_CopyData (id) { SFX_SendCommand(SPECIAL_COMMAND_PREFIX + SPECIAL_COMMAND_EXPORTDATA); } var SFX_fontFamily; var SFX_fontSize; var SFX_fontIsBold; var SFX_fontIsItalic; var SFX_fontIsUnderline; function SFX_ShowFontDialog (id) { SFX_ClearLayers(); fontFamily = "Arial"; fontSize = 8; isBold = false; isItalic = false; isUnderline = false; SFX_fontFamily = fontFamily; SFX_fontSize = fontSize; SFX_fontIsBold = isBold; SFX_fontIsItalic = isItalic; SFX_fontIsUnderline = isUnderline; var windowDialog = window.open(SFX_fontDialog,null,'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=300,height=200'); } function SFX_ReturnFromFontDialog (fontFamily, fontSize, isBold, isItalic, isUnderline) { SFX_SendCommand(SPECIAL_COMMAND_PREFIX + SPECIAL_COMMAND_SETFONT + fontFamily + SUBCOMMAND_SEPARATOR + fontSize + SUBCOMMAND_SEPARATOR + isBold + SUBCOMMAND_SEPARATOR + isItalic + SUBCOMMAND_SEPARATOR + isUnderline); }