home *** CD-ROM | disk | FTP | other *** search
/ CyberMycha 2003 October / cmycha200310.iso / NHL2004 / NHL2004Demo.exe / fe / COMMON / htc / dialog_window / dialog_window.htc < prev    next >
Text File  |  2003-08-20  |  11KB  |  293 lines

  1. <PUBLIC:COMPONENT tagName='DialogWindow' lightweight="true">
  2.     <PUBLIC:PROPERTY NAME="dialog_width"                />
  3.     <PUBLIC:PROPERTY NAME="dialog_height"                />
  4.     <PUBLIC:PROPERTY NAME="document_src"                />
  5.     <PUBLIC:PROPERTY NAME="innerHTML"                    />
  6.     <PUBLIC:PROPERTY NAME="align"                        />
  7.     <PUBLIC:PROPERTY NAME="opacity"                    />
  8.     <PUBLIC:ATTACH EVENT="onpropertychange"        ONEVENT="doPropChange();"            />
  9.     <PUBLIC:METHOD NAME="isOn"            />
  10.     <PUBLIC:METHOD NAME="getElement"        />
  11.     <PUBLIC:METHOD NAME="show"            />
  12.     <PUBLIC:METHOD NAME="hide"            />
  13.     <PUBLIC:METHOD NAME="setSize"            />
  14.     <PUBLIC:METHOD NAME="allowResize"        />
  15.     <PUBLIC:METHOD NAME="addButton"        />
  16.     <PUBLIC:METHOD NAME="clearButtons"         />
  17.     <PUBLIC:METHOD NAME="setBackgroundImage"         />
  18.     <PUBLIC:METHOD NAME="setStyle"         />
  19.     <PUBLIC:METHOD NAME="setButtonWidth"         />
  20.     <PUBLIC:EVENT NAME="onhide"            ID="OnDialogHide"     />
  21.     <PUBLIC:EVENT NAME="onshow"            ID="OnDialogShow" />
  22.  
  23.     <PUBLIC:DEFAULTS
  24.         contentEditable            = "false"
  25.         viewInheritStyle        = "false"
  26.         viewLinkContent            = "true"
  27.         viewMasterTab            = "false"
  28.     />
  29. </PUBLIC:COMPONENT>
  30. <script>
  31.     element.dialog_width        = 600;
  32.     element.dialog_height        = 500;
  33.  
  34.     var dialogMode                = 0;
  35.     var cachedDialogWidth        = element.dialog_width;
  36.     var cachedDialogHeight        = element.dialog_height;
  37.     var dontListenToPropChange    = false;
  38.     var sCurrentStyle            = "";
  39.  
  40.         function doPropChange()
  41.         {
  42.             switch (event.propertyName)
  43.             {
  44.                  case "dialog_width":
  45.                 case "dialog_height":
  46.                     if (cachedDialogHeight != element.dialog_height || cachedDialogWidth != element.dialog_width ) {
  47.                         element.document.all.sys_dialog_tblFrame.height    = dialog_height;
  48.                         element.document.all.divDialogBG.style.pixelHeight    = (dialog_height - 10);
  49.                         element.document.all.divDialogHeader.style.pixelHeight    = 26;
  50.                         element.document.all.divDialogBody.style.pixelHeight    = (dialog_height - 10 - 26 - 1 );
  51.                         element.document.all.divTextPopup.style.pixelHeight    = (dialog_height - 19);
  52.                         element.document.all.ifrmPopup.style.pixelHeight    = (dialog_height - 19);
  53.                         element.document.all.divBtnBox.style.pixelTop        = (element.document.all.sys_dialog_tblFrame.height - 50);
  54.                         cachedDialogHeight = element.dialog_height;
  55.  
  56.                         element.document.all.sys_dialog_tblFrame.width     = dialog_width;
  57.                         element.document.all.divDialogBG.style.pixelWidth    = (dialog_width - 10);
  58.                         element.document.all.divDialogHeader.style.pixelWidth    = (dialog_width - 10);
  59.                         element.document.all.divDialogBody.style.pixelWidth    = (dialog_width - 10);
  60.                         element.document.all.divTextPopup.style.pixelWidth    = (dialog_width - 35);
  61.                         element.document.all.ifrmPopup.style.pixelWidth    = (dialog_width-18);
  62.                         element.document.all.divBtnBox.style.pixelWidth    = (dialog_width-45);
  63.                         cachedDialogWidth = element.dialog_width;
  64.                     };
  65.                 break;
  66.                 case "document_src":
  67.                     if (!dontListenToPropChange) {
  68.                         setSize(500, 400);
  69.                         dialogMode                    = 0;
  70.                         element.document.all.ifrmPopup.src                = System.getInstallFolder(true) + element.document_src;
  71.                         element.document.all.divTextPopup.innerHTML         = "";
  72.                         clearButtons();
  73.                         dontListenToPropChange = true;
  74.                         element.innerHTML    = "";
  75.                         dontListenToPropChange = false;
  76.                     };
  77.                 break;
  78.                 case "innerHTML":
  79.                     if (!dontListenToPropChange) {
  80.                         setSize(350, 147);
  81.                         dialogMode                    = 1;
  82.                         element.document.all.divTextPopup.style.backgroundColor="transparent";
  83.                         element.document.all.divTextPopup.style.color            = "white";
  84.                         element.document.all.divTextPopup.innerHTML             = element.innerHTML;
  85.  
  86.                         clearButtons();
  87.                         element.document.all.divTextPopup.style.textAlign         = "left";
  88.                         element.document.all.divTextPopup.noWrap            = false;
  89.                         dontListenToPropChange = true;
  90.                         element.document_src = "";
  91.                         dontListenToPropChange = false;
  92.                     };
  93.                 break;
  94.                 case "align":
  95.                     element.document.all.divTextPopup.style.textAlign = element.align;
  96.                 break;
  97.             };
  98.         };
  99.         function allowResize(bWrap, suggestedWidth)
  100.         {
  101.             if (!bWrap)
  102.             {
  103.                 element.document.all.divTextPopup.noWrap = true;
  104.                 if (element.document.all.divTextPopup.scrollWidth > element.document.all.divTextPopup.offsetWidth)
  105.                 {
  106.                     diff             = element.document.all.divTextPopup.scrollWidth - element.document.all.divTextPopup.offsetWidth;
  107.                     newWidth        = diff + element.dialog_width;
  108.                     if (newWidth > 800) { newWidth = 800; }
  109.                     element.dialog_width = newWidth;
  110.                 };
  111.              } else {
  112.                  if (!suggestedWidth) { return; };
  113.                  if (suggestedWidth > 800) { suggestedWidth = 800; };
  114.                  element.dialog_width    = suggestedWidth;
  115.                  element.document.all.divTextPopup.noWrap = false;
  116.                  if ((element.document.all.divTextPopup.scrollHeight + 30 /*buffer for buttons*/) > element.document.all.divTextPopup.offsetHeight)
  117.                  {
  118.                      diff =(element.document.all.divTextPopup.scrollHeight + 30) - element.document.all.divTextPopup.offsetHeight;
  119.                      newHeight = diff + element.dialog_height;
  120.                      if (newHeight > 600) { newHeight = 600; };
  121.                      element.dialog_height = newHeight;
  122.                  };
  123.              };
  124.         };
  125.         function setSize (width, height)
  126.         {
  127.             if (width < 159) width     = 159;
  128.             if (width > 800) width     = 800;
  129.             if (height < 87) height     = 87;
  130.             if (height > 600) height     = 600;
  131.  
  132.             element.dialog_height    = height;
  133.             if (element.document.all.divTextPopup.innerHTML) {
  134.                 allowResize(true, width);
  135.             } else {
  136.                 element.dialog_width    = width;
  137.             };
  138.         };
  139.         function isOn() { return (element.document.all.divDialogBox.style.visibility == "visible"); };
  140.         function getElement(id)
  141.         {
  142.             if (element.document.all[id]) { return element.document.all[id]; };
  143.             if (element.document.all.ifrmPopup.contentWindow.document.all[id]) { return element.document.all.ifrmPopup.contentWindow.document.all[id]; };
  144.         };
  145.         function show()
  146.         {
  147.             try { top.document.frames["Editorial_Frame"].focus(); } catch (e) {   }
  148.  
  149.             setStyle(sCurrentStyle);
  150.  
  151.             if (top.document.frames["Editorial_Frame"].showDialogCallback) {
  152.                 top.document.frames["Editorial_Frame"].showDialogCallback();
  153.             };
  154.             var screenCenterX        = 400;
  155.             var screenCenterY        = 300;
  156.             var elCenterX            = Math.round(element.dialog_width/2);
  157.             var elCenterY            = Math.round(element.dialog_height/2);
  158.             if (elCenterX <= screenCenterX) {
  159.                 element.document.all.sys_dialog_box.style.pixelLeft        = screenCenterX - elCenterX;
  160.             } else {
  161.                 element.document.all.sys_dialog_box.style.pixelLeft        = elCenterX - screenCenterX;
  162.             };
  163.             if (elCenterY <= screenCenterY) {
  164.                 element.document.all.sys_dialog_box.style.pixelTop        = screenCenterY - elCenterY;
  165.             } else {
  166.                 element.document.all.sys_dialog_box.style.pixelTop    = elCenterY - screenCenterY;
  167.             };
  168.             if (dialogMode) {
  169.                 element.document.all.divTextPopup.style.visibility    = 'visible';
  170.                 element.document.all.ifrmPopup.style.visibility        = 'hidden';
  171.             } else {
  172.                 element.document.all.divTextPopup.style.visibility    = 'hidden';
  173.                 element.document.all.ifrmPopup.style.visibility        = 'visible';
  174.             };
  175.             element.document.all.divDialogBox.style.visibility        = "visible";
  176.             element.document.all.divDialogHeader.style.visibility = "visible";
  177.             element.document.all.divDialogBody.style.visibility = "visible";
  178.  
  179.             element.document.all.divDialogBox.focus();
  180.             screenCenterX = screenCenterY = elCenterX = elCenterY = null;
  181.             window.external.PumpMessages();
  182.  
  183.             var eventObject            = createEventObject();
  184.                   eventObject.dialogOn        = true;
  185.                   OnDialogShow.fire(eventObject);
  186.         };
  187.         function hide()
  188.         {
  189.             setBackgroundImage("fe/nhl/images2/common/1x1_wht.gif");
  190.             sCurrentStyle = nhlMsg("ALERT") + "!";
  191.  
  192.             element.document.all.divDialogHeader.style.visibility = "hidden";
  193.             element.document.all.divDialogBody.style.visibility = "hidden";
  194.  
  195.             if (top.document.frames["Editorial_Frame"].hideDialogCallback) {
  196.                 top.document.frames["Editorial_Frame"].hideDialogCallback();
  197.             };
  198.             element.document.all.divDialogBox.style.visibility    = "hidden";
  199.             element.document.all.divTextPopup.style.visibility    = 'hidden';
  200.             element.document.all.ifrmPopup.style.visibility    = 'hidden';
  201.  
  202.         //    var eventObject            = createEventObject();
  203.         //          eventObject.dialogOn        = false;
  204.         //          OnDialogHide.fire(eventObject);
  205.         };
  206.         var btnOnCount        = 0;
  207.         var btn1Handler, btn2Handler, btn3Handler;
  208.         function addButton(sID, sText, fHandler, bDontClose)
  209.         {
  210.             if (btnOnCount < 3) {
  211.                 switch (btnOnCount +1) {
  212.                     case 1:
  213.                         btn1Handler    = fHandler;
  214.                     break;
  215.                     case 2:
  216.                         btn2Handler    = fHandler;
  217.                     break;
  218.                     case 3:
  219.                         btn3Handler    = fHandler;
  220.                     break;
  221.                 };
  222.                 element.document.all["btn" + (btnOnCount +1)].enable();
  223.                 element.document.all["btn" + (btnOnCount + 1)].style.display = '';
  224.                 element.document.all["btn" + (btnOnCount + 1)].btnEvent    = function()
  225.                 {
  226.                     switch (this.id) {
  227.                         case "btn1":
  228.                             if (btn1Handler) {
  229.                                 btn1Handler();
  230.                             };
  231.                         break;
  232.                         case "btn2":
  233.                             if (btn2Handler) {
  234.                                 btn2Handler();
  235.                             };
  236.                         break;
  237.                         case "btn3":
  238.                             if (btn3Handler) {
  239.                                 btn3Handler();
  240.                             };
  241.                         break;
  242.                     };
  243.                     if (!bDontClose) { hide(); };
  244.                 };
  245.                 element.document.all["btn" + (btnOnCount + 1)].btnText     = sText;
  246.             };
  247.             btnOnCount++;
  248.         };
  249.         function clearButtons()
  250.         {
  251.             element.document.all.btn1.style.display    = 'none';
  252.             btn1Handler = null;
  253.             element.document.all.btn2.style.display    = 'none';
  254.             btn2Handler = null;
  255.             element.document.all.btn3.style.display    = 'none';
  256.             btn3Handler = null;
  257.             btnOnCount    = 0;
  258.         };
  259.  
  260.         function setBackgroundImage(imgPath, pixelTop)
  261.         {
  262.             sCurrentStyle = "NONE";
  263.  
  264.             element.document.all.divDialogHeader.style.visibility = "hidden";
  265.             element.document.all.divDialogBody.style.visibility = "hidden";
  266.  
  267.             element.document.all.divDialogBG.src = System.getInstallFolder(true) + imgPath;
  268.  
  269.             if (pixelTop != null)
  270.             {
  271.                     element.document.all.divBtnBox.style.pixelTop = (element.document.all.sys_dialog_tblFrame.height - 50 + pixelTop);
  272.             }
  273.         };
  274.         function setStyle(strStyle)
  275.         {
  276.             sCurrentStyle = strStyle;
  277.  
  278.             switch (strStyle)
  279.             {
  280.                 case "NONE":
  281.                     element.document.all.divTextPopup.innerHTML = element.innerHTML;
  282.                     break;
  283.                 default:
  284.                     element.document.all.divTextPopup.innerHTML = strStyle + "<BR><BR>" + element.innerHTML;
  285.                     setSize(element.dialog_width,element.dialog_height+32);
  286.                     break;
  287.             }
  288.         };
  289.         function setButtonWidth(nWidth)
  290.         {
  291.             element.document.all.btn1.style.pixelWidth = nWidth;
  292.         };
  293. </script>