
  // --------------------------------------------------------------------------

  Zoomedia = {

    version: '1.0',

    redirect: function(url) {
      var anchor_pos = url.indexOf("#");
      document.location.href = (anchor_pos == -1) ? url : url.substr(0, anchor_pos);
    },

    print: function() {
      if (window.print) {
        window.print();
      } else {
        alert("Sorry, your browser doesn't support this feature.\nPlease use your browser's print button");
      }
      return false;
    }
  };

  // --------------------------------------------------------------------------

  Zoomedia.Menu = function(id) {
    if (id) {
      try { this.build( document.getElementById( id ) ); } catch(err) {}
    }
  };

  // --------------------------------------------------------------------------

  Zoomedia.Menu.prototype = {

    // ------------------------------------------------------------------------

    ptr: null,
    timer: null,
    delay: 1000,
    liList: [],

    // ------------------------------------------------------------------------

    setTimeOut: function(el) {
      var self = this;
      var id = el.getAttribute('id');
      this.timer = window.setTimeout(function() { self.mouseOut(document.getElementById(id)); }, this.delay);
    },

    // ------------------------------------------------------------------------

    mouseOut: function(el) {
      if (this.timer != null && this.ptr != null&& this.ptr.id == el.id) {
        if (!el.firstChild.getAttribute('on')) {
          el.firstChild.className = '';
        }

        for(var ulList = el.getElementsByTagName('ul'), i=0; i < ulList.length; ++i) {
          ulList.item(i).style.visibility = 'hidden';
        }

        for(var liList = el.getElementsByTagName('li'), i=0; i < liList.length; ++i) {
          liList.item(i).firstChild.className = '';
        }

        this.ptr = null;
        this.liList = new Array();

        return;
      }

      var className = '';
      for(var i=0; i < this.liList.length; i++) {
        if (this.liList[i] == el.id) {
          className = 'hover';
          break;
        }
      }

      if (!el.firstChild.getAttribute('on')) {
        el.firstChild.className = className;
      }
    },

    // ------------------------------------------------------------------------

    mouseOver: function(el) {
      for(var i=0; i < this.liList.length; ++i) {
        if (this.liList[i] == el.id) {
          break;
        }
      }

      if (i == this.liList.length) {
        this.liList[i] = el.id;
      }

      if (this.timer != null && this.ptr != null) {
        if (!this.ptr.firstChild.getAttribute('on')) {
          this.ptr.firstChild.className = '';
        }
        for(var ulList = this.ptr.getElementsByTagName('ul'), i=0; i < ulList.length; ++i) {
          ulList.item(i).style.visibility = 'hidden';
        }
        window.clearTimeout(this.timer);
        this.timer = null;
        this.liList = new Array();
      }

      this.ptr = el;

      if (this.ptr.tagName.toLowerCase() == 'li') {
        if (!this.ptr.firstChild.getAttribute('on')) {
          this.ptr.firstChild.className = 'hover';
        }
      }

      var ulList = this.ptr.getElementsByTagName('ul');

      if (ulList.length > 0) {
        ulList.item(0).style.visibility = 'visible';
      }
    },

    // ------------------------------------------------------------------------

    build: function(el) {
      var self = this;
      for(var i=0; i < el.childNodes.length; ++i) {
        if (el.childNodes[i].nodeName.toLowerCase() == 'li') {
          for(var j=0; j < el.childNodes[i].childNodes.length; ++j) {
            if (el.childNodes[i].childNodes[j].nodeName.toLowerCase() == 'ul') {
              el.childNodes[i].onmouseover = function() { try { self.mouseOver(this); } catch(err) {} };
              el.childNodes[i].onmouseout = function() { try { self.setTimeOut(this); } catch(err) {} };
              //this.build(el.childNodes[i].childNodes[j]);
              //break;
            }
          }
        }
      }
    }

    // ------------------------------------------------------------------------

  }//Zoomedia.Menu

  // --------------------------------------------------------------------------

  Zoomedia.Glossary = new function() {

    // ------------------------------------------------------------------------

    this.current = null;

    // ------------------------------------------------------------------------

    this.items = {};

    // ------------------------------------------------------------------------

    this.tpl = '<div class="glossary">'+
                '<div class="header">%POPUP_TITLE%</div>'+
                '<div class="main">%POPUP_CONTENT%</div>'+
                '<div class="footer"><a href="#" onclick="Zoomedia.Glossary.hide(\'div_%GLOSSARY_ID%\'); return false;">close</a></div>'+
               '</div>';

    // ------------------------------------------------------------------------

    this.setItems = function(items) {
      this.items = items;
    };

    // ------------------------------------------------------------------------

    this.show = function(a, id, event) {
      if (this.current) {
        this.hide(this.current);
      }

      var div = document.createElement('div');
          div.setAttribute('id', 'div_'+id);
          div.onclick = function() { Zoomedia.Glossary.hide( 'div_'+id ); };
          div.className = 'gloss_def';
          div.style.position = 'absolute';
          div.style.display = 'none';
          div.style.zIndex = 2000;

          /*offset = document.body.scrollTop ? document.body.scrollTop : document.documentElement.scrollTop;
          if (!offset) {
            offset = 0; // stupid ie5/mac
          }

          div.style.top = (offset + event.clientY)+'px';
          div.style.left = event.clientX+'px';*/

          div.innerHTML = this.tpl.replace('%GLOSSARY_ID%', id).replace('%POPUP_TITLE%', this.items[id].title).replace('%POPUP_CONTENT%', this.items[id].content);

      //insert div before anchor tag
      a.parentNode.insertBefore(div, a);

      div.style.top  =  (a.offsetTop - a.clientHeight - div.clientHeight) + 'px';
      div.style.left = a.offsetLeft+'px';
      div.style.display = 'block';

      this.current = 'div_'+id;

      //close removes the dynamically created div
      //div.parentNode.removeChild(div);
    };

    // ------------------------------------------------------------------------

    this.hide = function(eleId) {
      var div = document.getElementById(eleId);
      if (div) {
        div.parentNode.removeChild(div);
      }
    };

    // ------------------------------------------------------------------------

  };

  // --------------------------------------------------------------------------

  Zoomedia.FontSize = function(font_size) {

    // ------------------------------------------------------------------------

    var sizes = ['small', 'large'];

    // ------------------------------------------------------------------------

    var body = document.getElementById('wrapper');

    // ------------------------------------------------------------------------

    var current_font_size = 'small';

    // ------------------------------------------------------------------------

    var match = document.cookie.match(/(?:font_size=(.+)(?:;?|$))/);

    // ------------------------------------------------------------------------

    if (match) {
      current_font_size = match[1];
      if (font_size == current_font_size) {
        //return;
      }
    }

    // ------------------------------------------------------------------------

    if (body) {
        body.className = body.className.replace('/ ' + current_font_size + '/', '');

        body.className = ' ' + font_size;
	}

    // ------------------------------------------------------------------------

    document.cookie = 'font_size='+font_size+';path=/;';

    // ------------------------------------------------------------------------

  };

  // --------------------------------------------------------------------------

  function getCookie(c_name) {
      if (document.cookie.length>0) {
          c_start=document.cookie.indexOf(c_name + "=");

          if (c_start!=-1) {
              c_start=c_start + c_name.length+1;
              c_end=document.cookie.indexOf(";",c_start);

              if (c_end==-1) c_end=document.cookie.length;
                  return unescape(document.cookie.substring(c_start,c_end));
          }
      }
      return false;
  }

  // --------------------------------------------------------------------------

  var hbx = undefined;

  // --------------------------------------------------------------------------

  Zoomedia.Form = new function() {

    // ------------------------------------------------------------------------

    this.submit = function(form) {
      if (hbx != undefined) {
        hbx.pn += '+FORM+SUBMIT';
      }
      document.getElementById(form).submit();
    };

    // ------------------------------------------------------------------------

    this.formatNumber = function(value) {
      return value.replace(/[^\d.]/g, '');
    };

    // ------------------------------------------------------------------------

    this.formatTelephoneNumber = function(value) {
      return value.replace(/[^\d]/g, '');
    };

    // ------------------------------------------------------------------------

  };

    // --------------------------------------------------------------------------

  Zoomedia.SharePage = new function(id) {

    // ------------------------------------------------------------------------

    this.timer = null;

    // ------------------------------------------------------------------------

    this.delay = 500;

    // ------------------------------------------------------------------------

    this.active = false;

    // ------------------------------------------------------------------------

    this.setActive = function(enabled) {
      this.active = enabled;
    };

    // ------------------------------------------------------------------------

    this.isActive = function() {
      return this.active;
    };

    // ------------------------------------------------------------------------

    this.setTimeOut = function(el) {
      var self = this;
      var id = el.getAttribute('id');
      this.timer = window.setTimeout(function() { self.mouseOut(document.getElementById(id)); }, this.delay);
    };

    // ------------------------------------------------------------------------

    this.hide = function(el) {
      this.setActive(false);
      document.getElementById('share-page-widget').style.display = 'none';
    };

    // ------------------------------------------------------------------------

    this.show = function(a) {
      //if (this.isActive()) {
        //return;
      //}

      this.setActive(true);

      var widget = document.getElementById('share-page-widget');
      if (widget) {
        widget.style.top  = (a.offsetTop + a.offsetHeight) + 'px';
        widget.style.left = a.offsetLeft+'px';
        widget.style.display = 'block';
      }

      return false;
    };

    // ------------------------------------------------------------------------

  }; //Zoomedia.SharePage

  // --------------------------------------------------------------------------

  function emailPage(lang, altText) {
      var geturl = window.location;
      document.write('&nbsp;&nbsp;<a href="/sendfriend?uri=' + geturl + '"><img src="/img/' + lang + '/email.gif" alt="' + altText + '" border="0" height="28" width="103" \/><\/a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;');
  }

  // --------------------------------------------------------------------------

  function changeFontSize() {
      var curSize = getCookie('font_size');
      var newSize = '';

      if (curSize == 'small') { newSize = 'large'; }
      else { newSize = 'small'; }

      document.cookie = 'font_size='+newSize+';path=/;';

      new Zoomedia.FontSize(getCookie('font_size'));
  }

  // --------------------------------------------------------------------------

  function vettUsaZipSearchSubmit () {
      var returnOK = false;

      var applicationValues = new Array();
      $.each($("input[name='application[]']:checked"), function() {
          applicationValues.push($(this).val());
      });

      $.ajax( {
          type : 'post',
          async : false,
          url : '/us_physician_search',
          data : {
              zip : $('#zip').val(),
              searchRadius : $('#searchRadius').val(),
              application : applicationValues,
              email : $('#email').val(),
              ipostOptin :  (($('#ipostOptin:checked').val()) ? 'on': 'off'),
              hearAboutUs : $('#hearAboutUs').val(),
              hearAboutUsOther : $('#hearAboutUsOther').val(),
          },
          dataType : 'json',
          success : function(msg) {
              // Remove any errors classes
              $('td').removeClass('error');

              // Hide Message Divs
              $('#errorMsg-ct').hide();
              $('#invalidZip-ct').hide();
              $('#invalidEmail-ct').hide();

              if (msg.status == 'error') {   
                  // Show Default Error Message
                  $('#errorMsg-ct').show();

                  // Loop through all errors
                  $.each(msg.response, function(index, value) {
                      if (index == 'invalidZip') {
                          $('#'+index+'-ct').addClass('error');
                          $('#invalidZip-ct').show();
                      }
                      else if (index == 'invalidEmail') {
                          $('#'+index+'-ct').addClass('error');
                          $('#invalidEmail-ct').show();
                      }
                      else { $('#'+index+'-ct').addClass('error'); }
                  });
              } else { returnOK = true; }
          }
      });
      return returnOK;
  }

  // --------- JQuery Functions -----------------------------------------------
  var popupDelay = 400; // milliseconds

  $(document).ready(function(){

      // --------- Load Up Popups -----------------------------------
      $('a.with_popup').each(function() {
          $(this).wrap('<span class="with_popup"></span>');
          popup = $('div#' + $(this).attr('id') + '_popup');
          popup.insertAfter($(this));

          var timer = null;
          var tis = $(this);

          tis.parent().mouseover(function() {
              if(timer) { clearTimeout(timer); }
              tis.parent().find('div#' + tis.attr('id') + '_popup').fadeIn('fast');
          });

          tis.parent().mouseout(function() {
              timer = setTimeout(function() {
                  tis.parent().find('div#' + tis.attr('id') + '_popup').fadeOut('fast');
              }, popupDelay
              );
          });
      });

      // --------- Intl Narrow Results Link -----------------------------------
      $('a#narrowerLink').click(function(e) {
          e.preventDefault();
          $('p#narrower-ct').hide();
          $('#form-intlSearch2').fadeIn();
      });

      // If the Narrower Form was canceled
      $('#cityCountyClose').click(function(e) {
          e.preventDefault();
          $('#form-intlSearch2').hide();
          $('p#narrower-ct').show();
      });

      // --------- USA vCard Maker --------------------------------------------
      $('a.usDrKey').click(function(e) {
          e.preventDefault();
          var drKey = $(this).attr('href');

          $.ajax( {
              type : 'post',
              url : '/us_vcard_maker',
              data : {
                  s : drKey
              },
              dataType : 'json',
              success : function(msg) {
                  if (msg.status == 'error') {
                      alert('There was an issue processing this vCard.');
				  }
                  if (msg.status == 'OK') {
                      document.location = msg.response;
				  }
                  
                  
                  
              }
          });
      });

      // --------- INTL vCard Maker -------------------------------------------

      $('a.intlDrKey').click(function(e) {
          e.preventDefault();
          var drKey = $(this).attr('href');

          $.ajax( {
              type : 'post',
              url : '/intl_vcard_maker',
              data : {
                  s : drKey
              },
              dataType : 'json',
              success : function(msg) {
                  if (msg.status == 'error') {
                      alert('There was an issue processing this vCard.');
                  }
                  if (msg.status == 'OK') {
                      document.location = msg.response;
                  }
                  
                  
                  
              }
          });
      });

      // --------- iPost Optin Default Value ----------------------------------

//        var iPostOK = $('#ipostOptin:checked').val();

//        if (!iPostOK) { $('#ipostOptin').attr('checked','checked'); }

      // --------- Initiate Tabs ----------------------------------------------

//        $("#tabs").tabs();

      // ----------------------------------------------------------------------

  // --------------------------------------------------------------------------

      $('a#selectLanguage').mouseenter(function(){
          $('ul#languageList').css("display", "block");
      });
      
      $('a#selectLanguage').mouseleave(function(){
          $('ul#languageList').css("display", "none");
      });
      
      $('ul#languageList').mouseenter(function(){
          $('ul#languageList').css("display", "block");
      });
      
      $('ul#languageList').mouseleave(function(){
          $('ul#languageList').css("display", "none");
      });
      
  });

