

  function email_friend_v2(url,title)
  {
      window.open("http://www.myrateplan.com/email_a_friend.php?ptitle="+title+"&url="+url,"EMAILFRIEND","WIDTH=500,HEIGHT=700");
  }


  function bookmark(url,title) 
  {
    if ((navigator.appName == "Microsoft Internet Explorer") &&
        (parseInt(navigator.appVersion) >= 4)) {
        // What is the URL of the current page?

        // What is the title of the current page?
        //var title="MyRatePlan - Cell Phones and Plans";

        window.external.AddFavorite(url,title);
    } else {
        var msg = "Netscape users please press CTRL-D to bookmark this site";
        alert(msg);
    }
  }


  // | *
  // | *  Element Position
  // | *
  var isNav, isIE, isNavMac, isIEMac, isSafariMac, isFirefoxMac;


  if (parseInt(navigator.appVersion) >= 4)
  {
    //alert(navigator.appName +  " " + navigator.appVersion );
    if (navigator.appName == "Netscape")
    {
        isNav = true
        if( navigator.appVersion.match("Mac") )
        {
            isNavMac = true;
            //alert("NavMac");
        }
    }

    if (navigator.appName == "Microsoft Internet Explorer")
    {
        isIE = true
        if( navigator.appVersion.match("Mac") )
        {
            isIEMac = true;
        }
    }

  }


  if( navigator.appVersion.match("Mac") && navigator.appVersion.match("Safari") )
  {
      isSafariMac = true;
  }

  if( navigator.appVersion.match("Mac") && navigator.appVersion.match("Firefox") )
  {
      isFirefoxMac = true;
  }

  function getElementPosition(elemID)
  {
      var offsetTrail = document.getElementById(elemID);
      var offsetLeft = 0;
      var offsetTop = 0;
      while (offsetTrail)
      {
          offsetLeft += offsetTrail.offsetLeft;
          offsetTop += offsetTrail.offsetTop;
          offsetTrail = offsetTrail.offsetParent;
      }
      if (navigator.userAgent.indexOf("Mac") != -1 &&
          typeof document.body.leftMargin != "undefined")
      {
          offsetLeft += document.body.leftMargin;
          offsetTop += document.body.topMargin;
      }

      //if( navigator.userAgent.indexOf("Mac") != -1 )
      if( (isIEMac || isSafariMac) )
      {
          //alert('Updating');
          offsetLeft = offsetLeft / 10;
          offsetTop  = offsetTop  / 10;
      }

      return {left:offsetLeft, top:offsetTop};
  }





  // | *
  // | *  CLEAR
  // | *  use:  array_name.clear()
  // | *
  Array.prototype.clear = function ()
  {
      this.length = 0;
  };


  // | *
  // | *  REMOVE - remove an element from an array
  // | *  use:  array_name.remove(elem)
  // | *
  Array.prototype.remove = function (element)
  {
        var result = false;
        var array = [];
        for (var i = 0; i < this.length; i++) {
                if (this[i] == element) {
                        result = true;
                } else {
                        array.push(this[i]);
                }
        }
        this.clear();
        for (var i = 0; i < array.length; i++) {
                this.push(array[i]);
        }
        array = null;
        return result;
  };


  // | *
  // | *  CONTAINS - similar to in_array(), does the key exist?
  // | *
  // | *  return True/False use: array_name.contains(elem_name)
  // | *
  Array.prototype.contains = function (element)
  {
      for (var i = 0; i < this.length; i++)
      {
          if (this[i] == element) {   return true;  }
      }
      return false;
  };

  // | *
  // | *  IMPLODE
  // | *
  // | *  returns a string... use: array_name.implode(sep)
  // | *  [2,4,5] returns "2,4,5"
  Array.prototype.implode = function (sep)
  {
      var out = new String();
      for (var i = 0; i < this.length; i++)
      {
          if( out.length > 0 )  out = out + sep;
          out = out + this[i];
      }
      return out;
  };


