modal.js 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. // Licensed Materials - Property of IBM
  2. //
  3. // IBM Cognos Products: cogadmin
  4. //
  5. // (C) Copyright IBM Corp. 2005, 2010
  6. //
  7. // US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  8. //
  9. //
  10. // Copyright (C) 2008 Cognos ULC, an IBM Company. All rights reserved.
  11. // Cognos (R) is a trademark of Cognos ULC, (formerly Cognos Incorporated).
  12. //----------------------------------------------------------
  13. var stopMessage = '';
  14. var progressIcon = '';
  15. function initPopup (progress, stopMsg) {
  16. stopMessage = stopMsg;
  17. progressIcon = progress;
  18. }
  19. function openUrl(url, frameDiv){
  20. var pageBlurDiv = document.getElementById(frameDiv + '_pageBlur');
  21. if (pageBlurDiv == null){
  22. pageBlurDiv = document.createElement("div");
  23. pageBlurDiv.id = frameDiv + '_pageBlur';
  24. pageBlurDiv.style.display= "none";
  25. pageBlurDiv.style.position="absolute";
  26. pageBlurDiv.style.backgroundColor="#eeeeee";
  27. pageBlurDiv.style.filter="alpha(opacity=50)";
  28. pageBlurDiv.style.opacity="0.3";
  29. document.body.appendChild(pageBlurDiv);
  30. }
  31. var iFrameDiv = document.getElementById(frameDiv);
  32. if (iFrameDiv == null){
  33. // BUSY DIV
  34. var iFrameBusy = document.createElement("div");
  35. iFrameBusy.id = frameDiv + '_busyFrameDiv';
  36. iFrameBusy.style.filter="shadow(color=#9faa9f, direction=135)";
  37. iFrameBusy.style.padding="1px";
  38. iFrameBusy.style.position="absolute";
  39. // Calculate the position for the sand watch.
  40. var height = 130;
  41. var width = 150;
  42. iFrameBusy.style.height = height + 'px';
  43. iFrameBusy.style.width = width + 'px';
  44. var left = ((document.body.clientWidth - width) / 2) + document.body.scrollLeft;
  45. iFrameBusy.style.left = left + 'px';
  46. var top = ((document.body.clientHeight - height) / 2) + document.body.scrollTop;
  47. iFrameBusy.style.top = top + 'px';
  48. iFrameBusy.style.display = 'block';
  49. document.body.appendChild(iFrameBusy);
  50. var nobr = document.createElement("div");
  51. nobr.style.backgroundColor="#EFEFEF";
  52. nobr.style.padding="10px";
  53. nobr.style.border="solid 1px black";
  54. nobr.style.textAlign="center";
  55. nobr.id = frameDiv + '_busyMsg';
  56. iFrameBusy.appendChild(nobr);
  57. var busyImg = document.createElement("img");
  58. busyImg.src = progressIcon;
  59. busyImg.align= "absmiddle";
  60. nobr.appendChild(busyImg);
  61. var cancelLink = document.createElement("a");
  62. cancelLink.href="javascript:closeSubWindow(\"" + frameDiv + "\")";
  63. nobr.appendChild(cancelLink);
  64. cancelLink.appendChild(document.createTextNode(stopMessage));
  65. // IFRAME DIV
  66. var iFrameDiv = document.createElement("div");
  67. iFrameDiv.id = frameDiv;
  68. iFrameDiv.style.filter="shadow(color=#9faa9f, direction=135)";
  69. iFrameDiv.style.padding="1px";
  70. iFrameDiv.style.display= "none";
  71. iFrameDiv.style.position="absolute";
  72. // Calculate the position for the frame
  73. height = 550;
  74. width = 780;
  75. iFrameDiv.style.height = height + 'px';
  76. iFrameDiv.style.width = width + 'px';
  77. left = ((document.body.clientWidth - width) / 2) + document.body.scrollLeft;
  78. iFrameDiv.style.left = left + 'px';
  79. top = ((document.body.clientHeight - height) / 2) + document.body.scrollTop;
  80. iFrameDiv.style.top = top + 'px';
  81. iFrameDiv.style.display = 'block';
  82. document.body.appendChild(iFrameDiv);
  83. // IFRAME
  84. var iFrame = document.createElement("iframe");
  85. iFrame.id = frameDiv + "_thisFrame";
  86. iFrame.src="about:blank";
  87. iFrame.style.width = "100%";
  88. iFrame.style.height = "100%";
  89. iFrame.style.zIndex="9000";
  90. iFrame.style.backgroundColor="white";
  91. iFrame.style.borderRight="solid 1px black";
  92. iFrame.style.borderLeft="solid 1px black";
  93. iFrame.style.borderBottom="solid 1px black";
  94. iFrame.border ="0";
  95. iFrame.style.margin="0px";
  96. iFrameDiv.appendChild(iFrame);
  97. addEvent(iFrame,"load", function(event){openUrlLoaded(frameDiv, event);});
  98. }
  99. // Blur page
  100. pageBlurDiv.style.width= document.body.clientWidth;
  101. pageBlurDiv.style.height= document.body.clientHeight;
  102. pageBlurDiv.style.top="0";
  103. pageBlurDiv.style.left ="0";
  104. pageBlurDiv.style.display= "";
  105. // Show busy
  106. var iFrameBusy = document.getElementById(frameDiv + '_busyFrameDiv');
  107. iFrameBusy.style.top =(document.body.clientHeight - 80 )/ 2;
  108. iFrameBusy.style.left =(document.body.clientWidth - 80 )/ 2;
  109. iFrameBusy.style.display="";
  110. // invoke url
  111. var iFrame = document.getElementById(frameDiv + "_thisFrame");
  112. iFrame.src = url;
  113. }
  114. function openUrlLoaded(frameDiv, event) {
  115. var pageBlurDiv = document.getElementById(frameDiv + '_pageBlur');
  116. var iFrameBusy = document.getElementById(frameDiv + "_busyFrameDiv");
  117. var iFrameDiv = document.getElementById(frameDiv);
  118. if (iFrameDiv.style.display == "none" && iFrameBusy.style.display == "") {
  119. iFrameBusy.style.display="none";
  120. iFrameDiv.style.width= document.body.clientWidth - 80;
  121. iFrameDiv.style.height= document.body.clientHeight - 80 ;
  122. iFrameDiv.style.top="30";
  123. iFrameDiv.style.left ="30";
  124. iFrameDiv.style.display="";
  125. return;
  126. }
  127. }
  128. function closeSubWindow(frameDiv){
  129. var pageBlurDiv = document.getElementById(frameDiv + '_pageBlur');
  130. var iFrameBusy = document.getElementById(frameDiv + "_busyFrameDiv");
  131. var iFrameDiv = document.getElementById(frameDiv);
  132. pageBlurDiv.style.display="none";
  133. iFrameDiv.style.display="none";
  134. iFrameBusy.style.display = "none";
  135. }
  136. function addEvent(obj, eventName, handler){
  137. if (obj.attachEvent){
  138. obj.attachEvent("on"+eventName,handler);
  139. }
  140. else if (obj.addEventListener){
  141. obj.addEventListener(eventName, handler, false);
  142. }
  143. }