// Copyright © 2000 by Apple Computer, Inc., All Rights Reserved.
//
// You may incorporate this Apple sample code into your own code
// without restriction. This Apple sample code has been provided "AS IS"
// and the responsibility for its operation is yours. You may redistribute
// this code, but you are not permitted to redistribute it as
// "Apple sample code" after having made changes.
// ********************************
// application-specific functions *
// ********************************

// store variables to control where the popup will appear relative to the cursor position
// positive numbers are below and to the right of the cursor, negative numbers are above and to the left
var xOffset = 10;
var yOffset = 1;

// tis bit was added to hide iframe not working yet
//function DivSetVisible(state,targetObjectId)
//  {
//   var DivRef = document.getElementById(targetObjectId);
//   alert(DivRef.top);
//   var IfrRef = document.getElementById('hideframe');
//   if(state)
//   {
//    DivRef.style.display = "block";
//
//    IfrRef.style.width = DivRef.offsetWidth;
//    IfrRef.style.height = DivRef.offsetHeight;
//    IfrRef.style.top = DivRef.style.top;
//    IfrRef.style.left = DivRef.style.left;
//    IfrRef.style.zIndex = DivRef.style.zIndex - 1;
//    IfrRef.style.display = "block";
//   }
//   else
//   {
//   // DivRef.style.display = "none";
//    IfrRef.style.display = "none";
//   }
//  }






function showPopup (targetObjectId, eventObj) {
   //if(eventObj) {
      // hide any currently-visible popups
      hideCurrentPopup();
      // stop event from bubbling up any farther
      //eventObj.cancelBubble = true;
      //experimental

      var divObject = getObject(targetObjectId);
      // Obtain the size of the window we are going to show.
      w = divObject.offsetWidth;
      h = divObject.offsetHeight;

      // Position the window based on the size of the screen and a hardcoded window size.
      //newXCoordinate = (self.screen.width / 2) - 251 + ((document.body.scrollLeft)?document.body.scrollLeft:0); //251
      //newYCoordinate = (self.screen.height / 2) - 162 + ((document.body.scrollTop)?document.body.scrollTop:0);  //- 162

      // Position the window based on the size of the screen.
      //newXCoordinate = (self.screen.width / 2) - (w/2) + ((document.body.scrollLeft)?document.body.scrollLeft:0);
      //newYCoordinate = (self.screen.height / 2) - (h/2) + ((document.body.scrollTop)?document.body.scrollTop:0);

      //  Position the window based on the size of the inner browser window (actual webpage)
      newXCoordinate = (document.body.clientWidth / 2) - (w/2) + ((document.body.scrollLeft)?document.body.scrollLeft:0);
      newYCoordinate = (document.body.clientHeight / 2) - (h/2) + ((document.body.scrollTop)?document.body.scrollTop:0);

      // Position the window based on where abouts on the screen was clicked.
      //newXCoordinate = (eventObj.pageX)?eventObj.pageX + xOffset:eventObj.x + xOffset + ((document.body.scrollLeft)?document.body.scrollLeft:0);
      //newYCoordinate = (eventObj.pageY)?eventObj.pageY + yOffset:eventObj.y + yOffset + ((document.body.scrollTop)?document.body.scrollTop:0);
      
      moveObject(targetObjectId, newXCoordinate, newYCoordinate);
      // and make it visible
      if( changeObjectVisibility(targetObjectId, 'visible') ) {

         // if we successfully showed the popup
         // store its Id on a globally-accessible object
         window.currentlyVisiblePopup = targetObjectId;
         return true;
      } else {
         // we couldn't show the popup, boo hoo!
         return false;
      }
   //} else {
      // there was no event object, so we won't be able to position anything, so give up
     // return false;
   //}
} // showPopup
// this function allows you to specify where the box appears
function showPopupinfo (targetObjectId, eventObj, x, y) {
   var xOffset = x;
   var yOffset = y;
   if(eventObj) {
      // hide any currently-visible popups
      hideCurrentPopup();
      // stop event from bubbling up any farther
      eventObj.cancelBubble = true;
      // move popup div to current cursor position
      // (add scrollTop to account for scrolling for IE)
      var newXCoordinate = (eventObj.pageX)?eventObj.pageX + xOffset:eventObj.x + xOffset + ((document.body.scrollLeft)?document.body.scrollLeft:0);
      var newYCoordinate = (eventObj.pageY)?eventObj.pageY + yOffset:eventObj.y + yOffset + ((document.body.scrollTop)?document.body.scrollTop:0);

      // needs modifications
      //var newXCoordinate = 420;
      //var newYCoordinate = 150;
      moveObject(targetObjectId, newXCoordinate, newYCoordinate);
      // and make it visible
      if( changeObjectVisibility(targetObjectId, 'visible') ) {
         // if we successfully showed the popup
         // store its Id on a globally-accessible object
         window.currentlyVisiblePopup = targetObjectId;
         return true;
      } else {
         // we couldn't show the popup, boo hoo!
         return false;
      }
   } else {
      // there was no event object, so we won't be able to position anything, so give up
      return false;
   }
} // showPopup

function showPopupvertical (targetObjectId, eventObj) {

   var xOffset = 230;
   //var xOffset = eventObj.clientX;
   var yOffset = eventObj.clientY;
   //eventObj.clientY;
   if(eventObj) {
      // hide any currently-visible popups
      hideCurrentPopup();
      // stop event from bubbling up any farther
      eventObj.cancelBubble = true;
      // move popup div to current cursor position
      // (add scrollTop to account for scrolling for IE)
      //var newXCoordinate = (eventObj.pageX)?eventObj.pageX + xOffset:eventObj.x + xOffset + ((document.body.scrollLeft)?document.body.scrollLeft:0);
      //var newYCoordinate = (eventObj.pageY)?eventObj.pageY + yOffset:eventObj.y + yOffset + ((document.body.scrollTop)?document.body.scrollTop:0);
      moveObject(targetObjectId, xOffset, yOffset);
      //	moveObject(targetObjectId, newXCoordinate, newYCoordinate);
      // and make it visible
      if( changeObjectVisibility(targetObjectId, 'visible') ) {
         // if we successfully showed the popup
         // store its Id on a globally-accessible object
         window.currentlyVisiblePopup = targetObjectId;
         return true;
      } else {
         // we couldn't show the popup, boo hoo!
         return false;
      }
   } else {
      // there was no event object, so we won't be able to position anything, so give up
      return false;
   }
} // showPopup


function blankframe() {
   if (document.getElementById('tariffpopinfo')) {
      document.getElementById('tariffpopinfo').innerHTML = '';
   }
   if (document.getElementById('specpopinfo')) {
      document.getElementById('specpopinfo').innerHTML = '';
   }
   if (document.getElementById('handsetpopinfo')) {
      document.getElementById('handsetpopinfo').innerHTML ='';
   }
}





function hideCurrentPopup() {
   // note: we've stored the currently-visible popup on the global object window.currentlyVisiblePopup
   if(window.currentlyVisiblePopup) {
      // blankframe();
      changeObjectVisibility(window.currentlyVisiblePopup, 'hidden');
      window.currentlyVisiblePopup = false;
      if (document.getElementById('hideframe')) {
         closeframe();
      }

   }
} // hideCurrentPopup



// ***********************
// hacks and workarounds *
// ***********************

// initialize hacks whenever the page loads
window.onload = initializeHacks;

// setup an event handler to hide popups for generic clicks on the document
/* if(!window.closeframe){ */
///document.onclick = hideCurrentPopup;
/*} */

function initializeHacks() {
   // this ugly little hack resizes a blank div to make sure you can click
   // anywhere in the window for Mac MSIE 5
   if ((navigator.appVersion.indexOf('MSIE 5') != -1)
   && (navigator.platform.indexOf('Mac') != -1)
   && getStyleObject('blankDiv')) {
      window.onresize = explorerMacResizeFix;
   }
   resizeBlankDiv();
   // this next function creates a placeholder object for older browsers
   createFakeEventObj();
}

function createFakeEventObj() {
   // create a fake event object for older browsers to avoid errors in function call
   // when we need to pass the event object to functions
   if (!window.event) {
      window.event = false;
   }
} // createFakeEventObj

function resizeBlankDiv() {
   // resize blank placeholder div so IE 5 on mac will get all clicks in window
   if ((navigator.appVersion.indexOf('MSIE 5') != -1)
   && (navigator.platform.indexOf('Mac') != -1)
   && getStyleObject('blankDiv')) {
      getStyleObject('blankDiv').width = document.body.clientWidth - 20;
      getStyleObject('blankDiv').height = document.body.clientHeight - 20;
   }
}

function explorerMacResizeFix () {
   location.reload(false);
}