﻿// ===================================================================
// Author: Matt Kruse <matt@mattkruse.com>
// WWW: http://www.mattkruse.com/
//
// NOTICE: You may use this code for any purpose, commercial or
// private, without any further permission from the author. You may
// remove this notice from your final code if you wish, however it is
// appreciated by the author if at least my web site address is kept.
//
// You may *NOT* re-distribute this code in any way except through its
// use. That means, you can include it in your product, or your web
// site, or any other form where the code is actually being used. You
// may not put the plain javascript up on your site for download or
// include it in your javascript libraries for download. Instead,
// please just point to my URL to ensure the most up-to-date versions
// of the files. Thanks.
// ===================================================================
/* 
AnchorPosition.js
Author: Matt Kruse
Last modified: 5/31/01

DESCRIPTION: These functions find the position of an <A> tag in a document,
so other elements can be positioned relative to it.

COMPATABILITY: Works with Netscape 4.x, 6.x, IE 5.x on Windows. Some small
positioning errors - usually with Window positioning - occur on the 
Macintosh platform.

FUNCTIONS:
getAnchorPosition(anchorname)
  Returns an Object() having .x and .y properties of the pixel coordinates
  of the upper-left corner of the anchor. Position is relative to the PAGE.

getAnchorWindowPosition(anchorname)
  Returns an Object() having .x and .y properties of the pixel coordinates
  of the upper-left corner of the anchor, relative to the WHOLE SCREEN.

NOTES:

1) For popping up separate browser windows, use getAnchorWindowPosition. 
   Otherwise, use getAnchorPosition

2) Your anchor tag MUST contain both NAME and ID attributes which are the 
   same. For example:
   <A NAME="test" ID="test"> </A>

3) There must be at least a space between <A> </A> for IE5.5 to see the 
   anchor tag correctly. Do not do <A></A> with no space.
*/ 
// getAnchorPosition(anchorname)
//   This function returns an object having .x and .y properties which are the coordinates
//   of the named anchor, relative to the page.
function getAnchorPosition(anchorname) {
     // This function will return an Object with x and y properties
     var coordinates = new Object();
     var x=0;
     var y=0;
     // Browser capability sniffing
     var use_gebi = false;
     var use_css = false;
     var use_layers = false;
     if (document.getElementById) { use_gebi = true; }
     else if (document.all) { use_css = true; }
     else if (document.layers) { use_layers = true; }
     // Logic to find position
     if (use_gebi && document.all) {
          x = AnchorPosition_getPageOffsetLeft(document.all[anchorname]);
          y = AnchorPosition_getPageOffsetTop(document.all[anchorname]);
          }
     else if (use_gebi) {
          var o = document.getElementById(anchorname);
          x = o.offsetLeft;
          y = o.offsetTop;
          }
     else if (use_css) {
          x = AnchorPosition_getPageOffsetLeft(document.all[anchorname]);
          y = AnchorPosition_getPageOffsetTop(document.all[anchorname]);
          }
     else if (use_layers) {
          var found=0;
          for (var i=0; i<document.anchors.length; i++) {
               if (document.anchors[i].name == anchorname) {
                    found=1;
                    break;
                    }
               }
          if (found == 0) {
               coordinates.x=0; coordinates.y=0; return coordinates;
               }
          x = document.anchors[i].x;
          y = document.anchors[i].y;
          }
     else {
          coordinates.x=0; coordinates.y=0; return coordinates;
          }
     coordinates.x = x;
     coordinates.y = y;
     return coordinates;
     }

// getAnchorWindowPosition(anchorname)
//   This function returns an object having .x and .y properties which are the coordinates
//   of the named anchor, relative to the window
function getAnchorWindowPosition(anchorname) {
     var coordinates = getAnchorPosition(anchorname);
     var x=0;
     var y=0;
     if (document.getElementById) {
          if (isNaN(window.screenX)) {
               x = coordinates.x + window.screenLeft;
               y = coordinates.y + window.screenTop;
               }
          else {
               x = coordinates.x + window.screenX + (window.outerWidth-window.innerWidth) - window.pageXOffset;
               y = coordinates.y + window.screenY + (window.outerHeight-24-window.innerHeight) - window.pageYOffset;
               }
          }
     else if (document.all) {
          x = coordinates.x + window.screenLeft;
          y = coordinates.y + window.screenTop;
          }
     else if (document.layers) {
          x = coordinates.x + window.screenX + (window.outerWidth-window.innerWidth) - window.pageXOffset;
          y = coordinates.y + window.screenY + (window.outerHeight-24-window.innerHeight) - window.pageYOffset;
          }
     coordinates.x = x;
     coordinates.y = y;
     return coordinates;
     }

// Functions for IE to get position of an object
function AnchorPosition_getPageOffsetLeft (el) {
     var ol = el.offsetLeft;
     while ((el = el.offsetParent) != null) { 
          ol += el.offsetLeft; 
          }
     return ol;
     }
function AnchorPosition_getWindowOffsetLeft (el) {
     var scrollamount = document.body.scrollLeft;
     return AnchorPosition_getPageOffsetLeft(el)-scrollamount;
     }    
function AnchorPosition_getPageOffsetTop (el) {
     var ot = el.offsetTop;
     while((el = el.offsetParent) != null) { 
          ot += el.offsetTop; 
          }
     return ot;
     }
function AnchorPosition_getWindowOffsetTop (el) {
     var scrollamount = document.body.scrollTop;
     return AnchorPosition_getPageOffsetTop(el)-scrollamount;
     }







$(function(){
 $("ul#mainNavLinks li[id='pageid508'] a, ul#footerNavLinks li[id='pageid508'] a").click(function(){
 dcsMultiTrack("DCSext.ecommercedelivery", "Customers Delivered to Booking Engine");
 });

 
});
