/**
 * @author Adam McIntyre
 * @author adam.mcintyre@molecular.com Misc. Nikon Utilities NOTE: If you're
 *         minifying this, make sure to catch all the conditional compilation.
 */

IconRollovers = function() {
	return {
		addIconRollovers : function(container) {
			var icons = YAHOO.util.Dom.getElementsByClassName('iconRollover', 'img', container);
			var obj = this;
			for (i = 0; i < icons.length; i++) {
				var el = icons[i];
				YAHOO.util.Event.addListener(el, 'mouseover', obj.showOverlay);
				YAHOO.util.Event.addListener(el, 'mouseout', obj.hideOverlay);
			}
		},
		showOverlay : function() {
			var el = this;
			var xy = YAHOO.util.Dom.getXY(el);
			var ov = document.getElementById('overlay_iconRollover');
			if (ov == null) {
				ov = document.createElement('div');
				ov.id = 'overlay_iconRollover';
				ov.className = 'pop_glossary';
				var tmpHtml = '<div class="hd"><div class="rnd le_bg"></div><h3 class="nkYellow">&nbsp;</h3></div>';
				tmpHtml += '<div class="bd"><div class="definition">&nbsp;</div></div>';
				tmpHtml += '<div class="ft le_bg">&nbsp;</div><div class="corner le_bg tl">&nbsp;</div>';
				ov.innerHTML = tmpHtml;
				document.body.appendChild(ov)
			}
			YAHOO.util.Selector.query('h3', ov, true).innerHTML = el.alt;
			YAHOO.util.Selector.query('div.definition', ov, true).innerHTML = el.title;
			var shiftLeft = (xy[0] + ov.offsetWidth) > YAHOO.util.Dom.getViewportWidth();
			var shiftTop = (xy[1] + ov.offsetHeight) > YAHOO.util.Dom.getViewportHeight();
			var cEl = YAHOO.util.Selector.query('div.corner', ov, true);
			if (shiftLeft && shiftTop) {
				cEl.className = "corner le_bg br";
				var newX = xy[0] - ov.offsetWidth - el.offsetWidth + cEl.offsetWidth;
				var newY = xy[1] - ov.offsetHeight - el.offsetHeight + (cEl.offsetWidth / 2);
				YAHOO.util.Dom.setXY(ov, [ newX, newY ]);
			} else if (!shiftLeft && shiftTop) {
				cEl.className = "corner le_bg bl";
				var newX = xy[0] + el.offsetWidth + cEl.offsetWidth;
				var newY = xy[1] - ov.offsetHeight - el.offsetHeight + (cEl.offsetWidth / 2);
				YAHOO.util.Dom.setXY(ov, [ newX, newY ]);
			} else if (shiftLeft && !shiftTop) {
				cEl.className = "corner le_bg tr";
				var newX = xy[0] - ov.offsetWidth - el.offsetWidth + cEl.offsetWidth;
				var newY = xy[1] + el.offsetHeight + (cEl.offsetWidth / 2);
				YAHOO.util.Dom.setXY(ov, [ newX, newY ]);
			} else {
				cEl.className = "corner le_bg tl";
				var newX = xy[0] + el.offsetWidth + cEl.offsetWidth;
				var newY = xy[1] + el.offsetHeight + (cEl.offsetWidth / 2);
				YAHOO.util.Dom.setXY(ov, [ newX, newY ]);
			}
		},
		hideOverlay : function(e, el) {
			var ov = document.getElementById('overlay_iconRollover');
			ov.style.left = "-5000px";
		}
	}
}();
function addRollover(anId) {
	/*
	 * @cc_on
	 * document.getElementById(anId).attachEvent('onmouseover',swapImages);
	 * document.getElementById(anId).attachEvent('onmouseout',swapImages);
	 * return true; @
	 */
	document.getElementById(anId).addEventListener('mouseover', swapImages, false);
	document.getElementById(anId).addEventListener('mouseout', swapImages, false);
}
function swapImages(e) {
	if (!e)
		e = window.event;
	if (e.target)
		var o = e.target;
	else
		var o = e.srcElement;
	if (o.nodeType == 3)
		o = o.parentNode;
	if (!o.src)
		return false;
	if (o.src.indexOf('_on') < 0) {
		o.src = (o.src.substr(0, o.src.length - 4) + '_on' + o.src.substr(o.src.length - 4));
	} else {
		o.src = o.src.substr(0, o.src.length - 7) + o.src.substr(o.src.length - 4);
	}
}
function inline_swapImages(o) {
	if (!o.src)
		return false;
	if (o.src.indexOf('_on') < 0) {
		o.src = (o.src.substr(0, o.src.length - 4) + '_on' + o.src.substr(o.src.length - 4));
	} else {
		o.src = o.src.substr(0, o.src.length - 7) + o.src.substr(o.src.length - 4);
	}
}
function evenOddRowClass(rowName) {
	var els = YAHOO.util.Dom.getElementsByClassName(rowName);
	for ( var i = 0; i < els.length; i++) {
		if (i % 2 == 0) {
			YAHOO.util.Dom.addClass(els[i], 'odd');
		} else {
			YAHOO.util.Dom.addClass(els[i], 'even');
		}
	}
}
function formatGrid() {
	var els = YAHOO.util.Dom.getElementsByClassName('lens');
	for ( var i = 1; i <= els.length; i += 2) {
		var leftEl = document.getElementById('body_' + i);
		var rightEl = document.getElementById('body_' + (i + 1));
		if (rightEl) {
			var leftHt = leftEl.offsetHeight;
			var rightHt = rightEl.offsetHeight;
			if (leftHt > rightHt) {
				leftEl.style.height = leftHt + 'px';
				rightEl.style.height = leftHt + 'px';
			} else {
				leftEl.style.height = rightHt + 'px';
				rightEl.style.height = rightHt + 'px';
			}
		}
	}
}
function preparePrint() {
	if (typeof YAHOO === 'object') {
		var contentBlocks = YAHOO.util.Dom.getElementsByClassName('tabContent', 'div', 'tabContentBlock')
		for ( var i = 0; i < contentBlocks.length; i++) {
			if (!(contentBlocks[i].style.display == 'block')) {
				contentBlocks[i].className = "noD";
				contentBlocks[i].style.display = "block";
			}
		}
	}
	var pWin = window.open('/static/html/print_frame.html');
	testOpenInterval = setInterval(function() {
		if (pWin.document) {
			clearInterval(testOpenInterval);
			setTimeout(function() {
				pWin.document.getElementById('body_content').innerHTML = document.body.innerHTML.replace(/<script\b[^>]*>([\s\S])*?<\/script>/ig, function() {
					return arguments[1]
				}).replace(/on(load|mouseover|click|mouseout)="(.*?)"/ig, '');
				pWin.print();
			}, 200);
		}
	}, 150);
}
function productPrint() {
	if (window.location.href.indexOf('?') > 0)
		window.open(window.location.href + '&mode=print');
	else
		window.open(window.location.href + '?mode=print');
}
function prepareLePrint() {
	if (window.location.href.indexOf('#') > -1) {
		var urlParts = window.location.href.split('#');
		if (urlParts[1].indexOf('?') > 0) {
			var params = urlParts[1].split('?');
			window.open(urlParts[0] + '?' + params[1] + '&mode=print' + '#' + params[0]);
		} else if (urlParts[0].indexOf('?') > 0) {
			window.open(urlParts[0] += '&mode=print' + '#' + urlParts[1]);
		} else {
			window.open(urlParts[0] += '?mode=print' + '#' + urlParts[1]);
		}
	} else if (window.location.href.indexOf('?') > 0)
		window.open(window.location.href + '&mode=print');
	else
		window.open(window.location.href + '?mode=print');
}
function horizCenter(cn) {
	var nd = document.getElementById(cn);
	var fc = document.getElementById('firstChild_' + cn);
	nd.style.width = fc.offsetWidth + 'px';
}
function clearInput(el, txt) {
	if (el.value == txt) {
		el.value = '';
		el.style.color = '#000';
	}
}
function fadeSwap(inEl, outEl) {
	if (typeof inEl == 'string')
		inEl = document.getElementById(inEl);
	if (typeof outEl == 'string')
		outEl = document.getElementById(outEl);
	var anim = new YAHOO.util.Anim(inEl, {
		opacity : {
			to : 1
		}
	}, 0.25, YAHOO.util.Easing.easeIn);
	var f = function() {
		new YAHOO.util.Anim(outEl, {
			opacity : {
				to : 0
			}
		}, 0.25, YAHOO.util.Easing.easeOut).animate();
	}
	anim.onStart.subscribe(f);
	anim.animate();
}
function formatWrap(regExStr, charNumber) {
	var els = YAHOO.util.Dom.getElementsByClassName('wrap');
	var reg = eval(regExStr);
	for ( var i = 0; i < els.length; i++) {
		var h = els[i].innerHTML;
		if (h.length > charNumber) {
			var m = reg.exec(h);
			if (m) {
				var mStr = m[0];
				var idx = h.indexOf(mStr);
				els[i].innerHTML = h.substr(0, idx + mStr.length) + '<br/>' + h.substr(idx + mStr.length);
			}
		}
	}
}
function loadProductTab() {
	var m = document.location.href.match(/tab=([^&]*)&?/);
	if (m) {
		var param = m[1];
		var tabs = tabView.get('tabs');
		for ( var i = 0; i < tabs.length; i++) {
			if (param.replace("%20", " ").toLowerCase() == tabs[i].get('href').substr(1).toLowerCase()) {
				tabView.set('activeIndex', i);
			}
		}
	}
}
function handeSort(el) {
	var val = el.options[el.selectedIndex].value;
	var sUrl = window.location.href;
	sUrl = sUrl.indexOf('?') > 0 ? sUrl : sUrl + '?';
	if (sUrl.indexOf('sort=') > 0) {
		window.location.href = sUrl.replace(/sort=([^&]*)/, function($0, $1) {
			return 'sort=' + val
		});
	} else {
		window.location.href = sUrl + "&sort=" + val;
	}
}
if (typeof YAHOO != 'undefined') {
	YAHOO.util.Event.onDOMReady(function() {
		var el = document.getElementsByTagName('body')[0].firstChild;
		if (el.nodeType == 3)
			el = el.nextSibling;
		el.style.width = '990px';
		var fl = document.getElementsByTagName('link')[0];
		fl.parentNode.removeChild(fl);
	});
}
function nikonMultilingual_init() {
	levelContent('top_l', 'div');
	levelContent('promo_links', 'div', 'bottom');
	levelContent('promo_summary', 'div', null, function(el) {
		var pNode = YAHOO.util.Dom.getAncestorByClassName(el, 'product_view');
		if (pNode && pNode.getAttribute('data-pid') && pNode.getAttribute('data-pName')) {
			OmnitureHelper.setProdViewEvent( [ pNode.getAttribute('data-pid'), pNode.getAttribute('data-pName').replace(/'/ig, '&#39;').replace(/"/ig, '&quot;') ]);
		}
	});
	levelContent('abstract', 'div');
	levelContent('listItem_inner', 'div');
}
YAHOO.util.Event.onDOMReady(nikonMultilingual_init);
function fixIEwrap(el) {
	if (typeof YAHOO != 'undefined' && YAHOO.env.ua.ie > 0 && YAHOO.env.ua.ie < 7) {
		el = YAHOO.util.Dom.get(el);
		var maxWidth = parseInt(YAHOO.util.Dom.getStyle(el, 'width'), 10)
		var pNode = el.parentNode.parentNode;
		YAHOO.util.Dom.setStyle(pNode, 'marginRight', '0');
		var pWidth = parseInt(YAHOO.util.Dom.getStyle(pNode, 'width'), 10);
		if (maxWidth > pWidth) {
			YAHOO.util.Dom.setStyle(pNode, 'width', maxWidth);
		} else {
			maxWidth = pWidth;
		}
		;
		pNode = pNode.parentNode;
		YAHOO.util.Dom.setStyle(pNode, 'marginRight', '0');
		if (maxWidth > parseInt(YAHOO.util.Dom.getStyle(pNode, 'width'), 10)) {
			YAHOO.util.Dom.setStyle(pNode, 'width', maxWidth);
		} else {
			maxWidth = parseInt(YAHOO.util.Dom.getStyle(pNode, 'width'), 10);
		}
		if (parseInt(YAHOO.util.Dom.getStyle(pNode, 'width'), 10) > 950) {
			YAHOO.util.Dom.setStyle(pNode, 'width', '996px');
		} else {
			var pNode = pNode.parentNode;
			YAHOO.util.Dom.setStyle(pNode, 'marginRight', '0');
			var pWidth = parseInt(YAHOO.util.Dom.getStyle(pNode, 'width'), 10);
			if (maxWidth > pWidth) {
				YAHOO.util.Dom.setStyle(pNode, 'width', maxWidth);
			} else if (pWidth > 950) {
				YAHOO.util.Dom.setStyle(pNode, 'width', '996px');
			}
			if (pNode.parentNode.style) {
				if (YAHOO.util.Dom.getStyle(pNode.parentNode, 'width').toLowerCase() != 'auto' && parseInt(YAHOO.util.Dom.getStyle(pNode.parentNode, 'width'), 10) > 950) {
					YAHOO.util.Dom.setStyle(pNode.parentNode, 'width', '996px');
				}

				pNode = pNode.parentNode;
				while (pNode.parentNode.tagName.toLowerCase() != 'body') {
					YAHOO.util.Dom.setStyle(pNode, 'marginRight', '0');
					if (maxWidth > parseInt(YAHOO.util.Dom.getStyle(pNode, 'width'), 10)) {
						YAHOO.util.Dom.setStyle(pNode, 'width', maxWidth);
					}
					if (parseInt(YAHOO.util.Dom.getStyle(pNode.parentNode, 'width'), 10) > 950) {
						YAHOO.util.Dom.setStyle(pNode.parentNode, 'width', '996px');
					}
					pNode = pNode.parentNode;
				}
			}
		}
		if (el.parentNode.style.display == 'none') {
			el.parentNode.style.display = 'block';
		}
	}
}
function fixTabHeights(e, o) {
	if (!e.prevValue) {
		var bd = YAHOO.util.Selector.query('div.bd', o.get('contentEl'), true);
		var tabHeight = YAHOO.util.Selector.query('ul.yui-nav', 'related_tabbed_content', true).offsetHeight;
		if (bd.offsetHeight < tabHeight) {
			var topPadding = parseInt(YAHOO.util.Dom.getStyle(bd, 'paddingTop'), 10);
			var btmPadding = parseInt(YAHOO.util.Dom.getStyle(bd, 'paddingBottom'), 10);
			YAHOO.util.Dom.setStyle(bd, 'height', (tabHeight - topPadding - btmPadding) + 'px');
			if (o.get('contentEl').parentNode.offsetHeight <= tabHeight) {
				YAHOO.util.Dom.setStyle(o.get('contentEl').parentNode, 'height', o.get('contentEl').offsetHeight + 'px');
			}
		}
	}
}
function closeNoContentGap(elId) {
	if (!elId)
		elId = 'contentBuffer__'
	var el = document.getElementById(elId);
	var pEl = el.parentNode;
	if (pEl && pEl.style.height != '') {
		pEl.style.height = '0px';
	}
	if (pEl && pEl.style.minHeight != '') {
		pEl.style.minHeight = '0px';
	}
}
function fixArticleHeight() {
	var aEl = document.getElementById('container_article');
	var mEl = document.getElementById('media_center');
	if (mEl) {
		if (aEl.offsetHeight <= (mEl.offsetHeight + mEl.offsetTop)) {
			YAHOO.util.Event.onDOMReady(function() {
				setTimeout(function() {
					aEl.style.height = mEl.offsetHeight + mEl.offsetTop + 40 + 'px'
				}, 100);
			});
		}
	}
	if (typeof YAHOO !== 'undefined') {
		if (YAHOO.util.Dom.hasClass('article_header', 'hd_light')) {
			var hdEl = document.getElementById('article_header');
			var el = YAHOO.util.Selector.query('h1', hdEl, true);
			var hdHeight = parseInt(YAHOO.util.Dom.getStyle(el, 'height'), 10);
			if (isNaN(hdHeight)) {
				hdHeight = el.offsetHeight;
			}
			var lnHeight = parseInt(YAHOO.util.Dom.getStyle(el, 'lineHeight'), 10);
			if (hdHeight >= (4 * lnHeight)) {
				YAHOO.util.Dom.addClass(hdEl, 'hd_doublePad');
			} else if (hdHeight >= (3 * lnHeight)) {
				YAHOO.util.Dom.addClass(hdEl, 'hd_pad');
			}
		}
	}
}
var countrytimeoutHolder = null;
function showCountries() {
	YAHOO.util.Dom.setStyle("countrySelector", 'display', "block");
	return false;
}
function hoverCountries() {
	clearTimeout(countrytimeoutHolder);
}
function hideCountries() {
	countrytimeoutHolder = setTimeout(function() {
		YAHOO.util.Dom.setStyle("countrySelector", 'display', "none")
	}, 500);
}
function levelContent(className, elemType, align, cb) {
	var els = YAHOO.util.Dom.getElementsByClassName(className, elemType);
	var highestHeight = 0;
	var heightsArray = [];
	if (els.length > 1) {
		for ( var i = 0; i < els.length; i++) {
			var thisHeight = els[i].offsetHeight;
			heightsArray[i] = thisHeight;
			if (thisHeight > highestHeight) {
				highestHeight = thisHeight;
			}
		}
		for ( var i = 0; i < els.length; i++) {
			if (align == 'middle') {
				var delta = highestHeight - heightsArray[i];
				var halfDelta = Math.round(delta / 2);
				YAHOO.util.Dom.setStyle(els[i], 'padding-top', halfDelta + "px");
				if (delta % 2) {
					YAHOO.util.Dom.setStyle(els[i], 'padding-bottom', halfDelta + "px");
				} else {
					YAHOO.util.Dom.setStyle(els[i], 'padding-bottom', (halfDelta + 1) + "px");
				}
			} else if (align == 'bottom') {
				var delta = highestHeight - heightsArray[i];
				YAHOO.util.Dom.setStyle(els[i], 'padding-top', delta + "px");
			} else {
				YAHOO.util.Dom.setStyle(els[i], 'height', highestHeight + "px");
			}
			if (cb) {
				cb(els[i]);
			}
		}
	}
}
if (YAHOO.env.ua.ie > 0 && YAHOO.env.ua.ie < 7) {
	YAHOO.util.Event.addListener(window, 'load', function() {
		if (typeof DD_belatedPNG !== 'undefined') {
			DD_belatedPNG.fix('h1.shifted, h2.shifted, h3.shifted, h4.shifted, div#hero img, div#list.product div.bd div.container img.product, div.promo_bw div.mid_c img.promoImg, table tr td img.png, img.camera, li.pv-item img.product');
		}
	});
}
function resetForms() {
}