window.addEvent('domready', function() {
  // get stock quote
  get_stock_html();

  build_top_nav();

  build_left_nav();


  // news accordion
  var accordion = new Accordion('div.title', 'div.abstract', {
    opacity: false,
    onActive: function(toggler, element){
      toggler.setStyle('background', "#ebf4f9 url('images/arrow_news_on.gif') no-repeat 9px 13px");
    },
    onBackground: function(toggler, element){
      toggler.setStyle('background', "#d4e6f4 url('images/arrow_news.gif') no-repeat 9px 13px");
    }
  }, $('articles'));

});


// flash loader

function load_flash(name, src, w, h, bgcolor) {
  document.write('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="' + w + '" height="' + h + '" id="' + name + '" align="middle">');
  document.write('<param name="allowScriptAccess" value="sameDomain" /><param name="allowFullScreen" value="false" /><param name="movie" value="' + src + '" /><param name="quality" value="high" /><param name="bgcolor" value="' + bgcolor + '" /><param name="wmode" value="opaque" />');
  document.write('<embed src="' + src + '" wmode="opaque" quality="high" bgcolor="' + bgcolor + '" width="' + w + '" height="' + h + '" name="' + name + '" align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></object>');
}

function flash_pop_up(id) {
  $(id).style.display = "block";
}

function flash_pop_down(id, swf) {
  $(id).style.display = "none";
  stopflash(swf);
}

function sendEvent(swf,typ,prm) { 
  thisMovie(swf).sendEvent(typ,prm); 
}

function thisMovie(swf) {
  if(navigator.appName.indexOf("Microsoft") != -1) {
    return window[swf];
  } else {
    return document[swf];
  }
}

function stopflash(swf) {
  sendEvent(swf, 'stop');
}


// get stock quote thru proxy and build html string
function get_stock_html() {
  var r = Math.floor(Math.random()*100000); // use on url to prevent caching
  var stockReq = new XHR({
    method: 'get',
    onSuccess: function(res) {
      try {
        $('stock').innerHTML = res;
      } catch (ex) {
      }
    }
  })
  try {
    stockReq.send("/stockQuote/quote.html?r=" + r, ""); 
  } catch (ex) {
  }
}

// product hover

function productHover(link, name, desc, pic, alt) {
  // remove current hover
  var curr_hover = $('prod_hover');
  if (curr_hover) { curr_hover.remove(); }

  // add new hover
  var prod = new Element('div', {'id': 'prod_hover',
                                 'styles': {'position': 'absolute',
                                            'margin-top': '-20px',
                                            'padding': '20px',
                                            'background': '#ffffff',
                                            'width': '400px',
                                            'border': 'solid 1px #006db8',
                                            'z-index': '100'
                                            }});

  // product hover event
  prod.addEvent('click', function() {
    prod.remove();
  });
  prod.innerHTML = ['<a name="product_info"></a><p style="position:absolute;top:10px;right:10px;color:#006db8;cursor:pointer;">close</p><h2 style="padding-right:50px;">', name, '</h2><img style="padding:0px 10px 10px 0px;" align="left" src="/images/products/', (pic || 'no_image.gif'), '" alt="', alt, '"/><p>', desc, '</p>'].join('');
  prod.injectTop(link.parentNode);
  var loc = window.location.toString();
  window.location = ((loc.substring(loc.length-5) == '_info') ? loc : (loc + "#product_info"));
}


function chooseleft() {
  document.news.lololol.value = 1;
  document.news.submit();
}
function chooseright() {
  document.news.lololol.value = 2;
  document.news.submit();
}


var MAIN_LINKS = [['markets', 0], // [name, linkable flag]
                  ['products', 1],
                  ['about', 1],
                  ['investors', 0],
                  ['contact', 1]
                  ];

function build_top_menu(dir_dict, prefix) {
  var menu = new Element('div', {'class': prefix + 'menu'});
  dir_dict['page_list'].each(function(p) {
    if (p[4]) { // check topnav flag
      var subKey = p[3];
      if (subKey && dir_dict['subdirs'][subKey]['page_list'][0][4]) {
        var subMenu = new Element('div', {'class': prefix + 'sub_section'});
        var button = new Element('a', {'class': [prefix, 'link ', prefix, 'sub_button'].join(''), 'href': ['/', p[1], '/', p[2]].join('')});
        button.innerHTML = p[0];
        button.inject(subMenu);

        // add sub menu
        build_top_menu(dir_dict['subdirs'][subKey], 'sub_' + prefix).inject(subMenu);
        subMenu.inject(menu);
      } else {
        var link = new Element('a', {'class': [prefix, 'link '].join(''), 'href': ['/', p[1], '/', p[2]].join('')});
        link.innerHTML = p[0];
        link.inject(menu);
      }
    }
  });
  
  return menu
}

function build_top_nav() {
  // build topnav
  var topnav = $('topnav');
  var leftCorner = new Element('img', {'class': 'left', 'src': '/images/topnav/main_button_corner.gif'});
  var rightCorner = new Element('img', {'class': 'right', 'src': '/images/topnav/main_button_corner.gif'});

  MAIN_LINKS.each(function(item) {
    var main = item[0];
    var link_it = item[1];
    var url = (link_it) ? ['/', main, '/'].join('') : '#';

    var mainSec = new Element('div', {'class': 'main_section', 'id': main});
    var mainLink = new Element('a', {'class': 'main_button', 'href': url});
    mainLink.innerHTML = main.toUpperCase();
    leftCorner.clone().inject(mainLink);
    rightCorner.clone().inject(mainLink);
    if (main == topOnId) {
      mainLink.addClass('top_on');
    }
    mainLink.inject(mainSec);

    // add menu
    build_top_menu(dirMap[main], '').inject(mainSec);

    // insert into nav div
    mainSec.inject(topnav);
  });

  // Add events
  $('topnav').getElements('.main_section').each(function(item) {
    var button = item.getElement('a.main_button');
    var menu = item.getElement('.menu');
    [button, menu].each(function(obj) {
      obj.addEvent('mouseover', function() {
        button.addClass('top_hover');
        menu.style.display = "block";
      });
      obj.addEvent('mouseout', function() {
        button.removeClass('top_hover');
        menu.style.display = "none";
      });
    });
    menu.getElements('.sub_section').each(function(item) {
      var sub_button = item.getElement('a.sub_button');
      var sub_menu = item.getElement('.sub_menu');
      [sub_button, sub_menu].each(function(obj) {
        obj.addEvent('mouseover', function() {
          sub_menu.style.display = "block";
        });
        obj.addEvent('mouseout', function() {
          sub_menu.style.display = "none";
        });
      });
    });
    menu.getElements('.sub_sub_section').each(function(item) {
      var sub_sub_button = item.getElement('a.sub_sub_button');
      var sub_sub_menu = item.getElement('.sub_sub_menu');
      [sub_sub_button, sub_sub_menu].each(function(obj) {
        obj.addEvent('mouseover', function() {
          sub_sub_menu.style.display = "block";
        });
        obj.addEvent('mouseout', function() {
          sub_sub_menu.style.display = "none";
        });
      });
    });
  });
}

function build_left_nav() {
  var dir_dict = dirMap[topOnId];
  if (dir_dict) {
    var index = 0;
    var path = document.location.pathname;

    // adjust path for amphenolmedical.com and amphenolmedicalsolutions.com
    if (document.domain.indexOf("amphenolmedical") > -1) {
      path = "markets/medical/index.html";
    }

    var subdir = path.slice(0, path.lastIndexOf('/')+1);
    page_name = path.slice(path.lastIndexOf('/')+1);
    build_left_menu($('left_nav'), dir_dict, path, subdir, page_name, index);
  }
}

function build_left_menu(nav_div, dir_dict, path, subdir, page_name, index) {
  dir_dict['page_list'].each(function(p) {
    if (p[5]) { // check leftnav flag
    var style = 'level' + index;
      var p_path = ['/', p[1], '/', p[2]].join('');
      var subKey = p[3];
      if ((subKey && subdir.indexOf(subKey + '/') > -1) || (path == p_path)) {
        style = style + '_on';
        var spacer = new Element('div', {'class': 'nav_spacer' + index});
        if (subKey) {
          var dots = new Element('div', {'class': 'nav_dots' + index});
          dots.clone().inject(spacer);
          var link = new Element('a', {'class': style, 'href': p_path});
          link.innerHTML = p[0];
          link.inject(spacer);
          build_left_menu(spacer, dir_dict['subdirs'][subKey], path, subdir, page_name, index + 1);
          dots.clone().inject(spacer);
        } else {
          var link = new Element('a', {'class': style, 'href': p_path});
          link.innerHTML = p[0];
          link.inject(spacer);
        }
        spacer.inject(nav_div);
      } else {
        var link = new Element('a', {'class': style, 'href': p_path});
        link.innerHTML = p[0];
        link.inject(nav_div);
      }
    }
  });
}
