function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
	var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
	if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
	d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_showMenu(menu, x, y, child, imgname) {
	if (!window.mmWroteMenu) return;
	MM_clearTimeout();
	if (menu) {
		var obj = FIND(imgname) || document.images[imgname] || document.links[imgname] || document.anchors[imgname];
		x = moveXbySlicePos (x, obj);
		y = moveYbySlicePos (y, obj);
	}
	if (document.layers) {
		if (menu) {
			var l = menu.menuLayer || menu;
			l.top = l.left = 1;
			hideActiveMenus();
			if (this.visibility) l = this;
			window.ActiveMenu = l;
		} else {
			var l = child;
		}
		if (!l) return;
		for (var i=0; i<l.layers.length; i++) {
			if (!l.layers[i].isHilite) l.layers[i].visibility = "inherit";
			if (l.layers[i].document.layers.length > 0) MM_showMenu(null, "relative", "relative", l.layers[i]);
		}
		if (l.parentLayer) {
			if (x != "relative") l.parentLayer.left = x || window.pageX || 0;
			if (l.parentLayer.left + l.clip.width > window.innerWidth) l.parentLayer.left -= (l.parentLayer.left + l.clip.width - window.innerWidth);
			if (y != "relative") l.parentLayer.top = y || window.pageY || 0;
			if (l.parentLayer.isContainer) {
				l.Menu.xOffset = window.pageXOffset;
				l.Menu.yOffset = window.pageYOffset;
				l.parentLayer.clip.width = window.ActiveMenu.clip.width +2;
				l.parentLayer.clip.height = window.ActiveMenu.clip.height +2;
				if (l.parentLayer.menuContainerBgColor && l.Menu.menuBgOpaque ) l.parentLayer.document.bgColor = l.parentLayer.menuContainerBgColor;
			}
		}
		l.visibility = "inherit";
		if (l.Menu) l.Menu.container.visibility = "inherit";
	} else if (FIND("menuItem0")) {
		var l = menu.menuLayer || menu;
		hideActiveMenus();
		if (typeof(l) == "string") l = FIND(l);
		window.ActiveMenu = l;
		var s = l.style;
		s.visibility = "inherit";
		if (x != "relative") {
			s.pixelLeft = x || (window.pageX + document.body.scrollLeft) || 0;
			s.left = s.pixelLeft + 'px';
		}
		if (y != "relative") {
			s.pixelTop = y || (window.pageY + document.body.scrollTop) || 0;
			s.top = s.pixelTop + 'px';
		}
		l.Menu.xOffset = document.body.scrollLeft;
		l.Menu.yOffset = document.body.scrollTop;
	}
	if (menu) window.activeMenus[window.activeMenus.length] = l;
	MM_clearTimeout();
}

function MM_jumpMenu(targ,selObj,restore){ //v3.0
  if (selObj.options[selObj.selectedIndex].value != ""){
	eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");}
  if (restore) selObj.selectedIndex=0;
}

var TheNewWin
function InfoWindow(LinkAddress)
{
	var NewWinHeight=100;
	var NewWinWidth=200;
	var NewWinPutX=(screen.width - NewWinWidth)/2;
	var NewWinPutY=(screen.height - NewWinHeight)/2;
	TheNewWin=window.open(LinkAddress,'TheNewpop2','fullscreen=no,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes');
	TheNewWin.resizeTo(NewWinWidth,NewWinHeight);
	TheNewWin.moveTo(NewWinPutX,NewWinPutY);
}

/*sfHover = function() {
	var sfEls = document.getElementById("nav").getElementsByTagName("LI");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
			this.className+=" sfhover";
		}
		sfEls[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
		}
	}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);*/


// Google Analytics

var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-16665202-1']);
_gaq.push(['_trackPageview']);

(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();

// Google AdWords tracking
if (window.location.hostname.toLowerCase() == 'www.abeka.com') {
	var AWArray = ['/abekaonline/checkout/showconfirmation.aspx','/abekaonline/guestcheckout/showguestconfirmation.aspx','/conversiontest.aspx'];
	if (AWArray.indexOf(window.location.pathname.toLowerCase()) != -1) {
		var google_conversion_id = 1034078206; //1017089205;
		var google_conversion_language = "en";
		var google_conversion_format = "2"; //"3";
		var google_conversion_color = "ffffff";
		var google_conversion_label = "0nnCCKqq8QIQ_o-L7QM"; //5PJuCOOwhAMQtZn-5AM";
		var google_conversion_value = 0;
	
		window.addEvent('domready', function() {
			var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
			ga.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'www.googleadservices.com/pagead/conversion.js';
			var b = document.getElementsByTagName('body')[0]; b.appendChild(ga);
		});
	}
}

(function()
{
	// private default button - this is what is "clicked" when you hit enter in any box that does not have
	// its own default button
	var defaultButton = null;
	var defaultButtonValidationGroup = '';
	var defaultButtonCausesValidation = true;
	var defaultButtonTriggerName = '';

	var isTextBox = function(el)
	{
		// preferred vs. listing all text box types since any unrecognized type is rendered as a text box
		var nonTextBoxTypes = [ 'submit', 'reset', 'hidden', 'image', 'button', 'checkbox', 'radio', 'file' ];
		return el.nodeName == 'INPUT' && !nonTextBoxTypes.contains(el.getAttribute('type'));
	}

	var simulateButtonClick = function(buttonToClick, causesValidation, validationGroup, triggerName)
	{
		var isValid = true;

		if (typeof(buttonToClick.clickOnce) == 'function')
		{
			buttonToClick.clickOnce();
		}
		else
		{
			if (causesValidation && typeof(Page_ClientValidate) == 'function')
			{
				isValid &= Page_ClientValidate(validationGroup);
			}
			if (typeof(Validation) == 'object' && typeof(Validation.validationGroupsByTrigger[triggerName]) == 'object')
			{
				isValid &= Validation.ValidateAllGroups(triggerName);
			}
			if (isValid)
			{
				if (buttonToClick.nodeName == 'A' && buttonToClick.className.contains('squarebutton'))
				{
					eval(unescape(buttonToClick.href));
				}
				else
				{
					buttonToClick.click();
				}
			}
		}
	};

	// Call this method to set the default button for a list of text boxes, or call it with only one parameter to change
	// the default button for the whole page.  The button parameter may be:
	//     1) the ID of a button,
	//     2) an HTML element,
	//     3) a MooTools element, or
	//     4) an object with the following two properties:
	//        button - any of the 3 things listed above
	//        causesValidation - whether the button triggers validation (using the built-in ASP.NET validators).
	//        validationGroup - the button's validation group name (using the built-in ASP.NET validators).
	//        triggerName - the trigger name for validation (using the PCC validators).
	window.SetDefaultButton = function(button)
	{
		var validationGroup = '';
		var causesValidation = true;
		var triggerName = button.id + '_click';

		if (typeof(button) == 'undefined' || button == null)
		{
			throw 'Parameter 1 is required in call to SetDefaultButton';
		}
		if (typeof(button.button) != 'undefined')
		{
			if (typeof(button.causesValidation) == 'boolean')
			{
				causesValidation = button.causesValidation;
			}
			if (typeof(button.validationGroup) == 'string')
			{
				validationGroup = button.validationGroup;
			}
			if (typeof(button.triggerName) == 'string')
			{
				triggerName = button.triggerName;
			}
			else
			{
				triggerName = button.id + '_click';
			}
			button = $(button.button);
		}
		else
		{
			button = $(button);
			triggerName = button.id + '_click';
		}

		if (arguments.length == 1)
		{
			defaultButton = button;
			defaultButtonCausesValidation = causesValidation;
			defaultButtonValidationGroup = validationGroup;
			defaultButtonTriggerName = triggerName;
		}
		else
		{
			var textBox;
			for (var i = 1; i < arguments.length; i++)
			{
				textBox = arguments[i];
				if (typeof(textBox) != 'undefined')
				{
					textBox = $(textBox);
					// add an event to the text box to click the default button
					if (textBox != null)
					{
						textBox.addEvent('keydown', function(e)
						{
							if (e.key == 'enter')
							{
								e.preventDefault();
								e.stopPropagation();
								simulateButtonClick(button, causesValidation, validationGroup, triggerName);
							}
						});
					}
				}
			}
		}
	};

	window.addEvent('domready', function()
	{
		// Find our "default" button (the first button except the search box's "go" button)
		var firstButton = null;
		var submitButtons = $$('input[type=submit]', 'input[type=button]', 'a.squarebutton');
		var lbnProductSearch = $('lbnProductSearch');
		var searchButtons = [ $('lbnSiteSearch') ];
		if (lbnProductSearch != null)
		{
			searchButtons.push(lbnProductSearch);
		}
		if (submitButtons != null)
		{
			for (var i = 0; i < submitButtons.length; i++)
			{
				if (!searchButtons.contains(submitButtons[i]))
				{
					firstButton = submitButtons[i];
					break;
				}
			}
		}
		if (defaultButton == null)
		{
			defaultButton = firstButton;
		}

		// Add an event to press the default button when someone hits enter in any text box (an event attached
		// to an individual text box will override this)
		document.addEvent('keydown', function(e)
		{
			if (e.key == 'enter' && isTextBox(e.target) && defaultButton != null)
			{
				e.preventDefault();
				e.stopPropagation();
				simulateButtonClick(defaultButton, defaultButtonCausesValidation, defaultButtonValidationGroup, defaultButtonTriggerName);
			}
		});

		// Set the search box to have its own default button (the "go" button)
		SetDefaultButton({ button:searchButtons[0], causesValidation:false }, 'txtSiteSearch');
		if (lbnProductSearch != null)
		{
			SetDefaultButton({ button:searchButtons[1], causesValidation:false }, 'txtProductSearch');
		}
	});
})();

function CreateWatermarkedTextBox(textBox, watermarkText, watermarkCssClass)
{
	var setWatermark = function()
	{
		textBox.set('value', watermarkText);
		textBox.addClass(watermarkCssClass);
	};
	textBox.addEvents({
		focus: function()
		{
			if (textBox.hasClass(watermarkCssClass))
			{
				textBox.set('value', '');
				textBox.removeClass(watermarkCssClass);
			}
		},
		blur: function()
		{
			if (textBox.get('value') == '')
			{
				setWatermark();
			}
		}
	});

	setWatermark();
}

function MakeOneClickLinkButton(linkButton, postFunction, causesValidation, validationGroup)
{
	if (typeof(causesValidation) == 'undefined')
	{
		causesValidation = true;
	}
	if (typeof(validationGroup) == 'undefined')
	{
		validationGroup = '';
	}

	PCC.Events.Enable(linkButton);
	linkButton.AddEvent('validate');

	// A LinkButton has the submit function in the href, but there's no way to disable after click so I'm
	// putting the same function on the click event instead.
	linkButton.href = '#';
	//linkButton.href = 'javascript:void(0);';

	if (typeof(window.OneClickLinkButtons) == 'undefined' || window.OneClickLinkButtons == null)
	{
		window.OneClickLinkButtons = [];
	}
	window.OneClickLinkButtons.push(linkButton);

	if (causesValidation)
	{
		PCC.Events.AddHandler(linkButton, 'validate', function(e)
		{
			if (typeof(Page_ClientValidate) == 'function')
			{
				if (!Page_ClientValidate(validationGroup))
				{
					e.preventDefault();
				}
			}
		});
	}

	linkButton.clickOnce = function(e)
	{
		var args = {
			cancel: false,
			preventDefault: function()
			{
				this.cancel = true;
			}
		};
		this.RaiseEvent('validate', args);

		if (typeof(e) != 'undefined')
		{
			e.preventDefault();
			e.stopPropagation();
		}
		if (!args.cancel)
		{
			var buttonReplacement = this.getElementsByTagName('span')[0].cloneNode(true);
			buttonReplacement.innerHTML = '<span>Please wait...</span>';
			buttonReplacement.className = 'disabledbutton';
			this.parentNode.insertBefore(buttonReplacement, this);
			//this.parentNode.removeChild(this);

			for (var i = 0; i < window.OneClickLinkButtons.length; i++)
			{
				window.OneClickLinkButtons[i].style.display = 'none';
			}
			postFunction();
		}
	};

	PCC.Events.AddHandler(linkButton, 'click', linkButton.clickOnce);
}

// Multi-slide - used to hide information on long pages. User clicks on heading to reveal the information.
function Enable_Multislide() { 	window.addEvent('domready',function() {
		multislide = new multislide('ms_container',
				{	onExpand: function(el){
						el.addClass('arrow');
					},
					onCollapse: function(el){
						el.removeClass('arrow');
					}
				});
		var hash = window.location.hash.substr(1); //strip off the leading #
		if (hash) {
			multislide.expand_ifcontains(hash);
			var hashEl = $(hash);
			if (hashEl) {
				var myFx = new Fx.Scroll(window).toElement(hashEl);
			}
		}
		$(document.body).getElements('a[href^=#]').each(function(item){
			href = item.getProperty('href').substr(1);
			item.addEvent('click', function(){
				this.expand_ifcontains(arguments[0]);
				var hashEl = $(arguments[0]);
				if (hashEl) {
					var myFx = new Fx.Scroll(window).toElement(hashEl);
					return false;
				}

			}.pass(href, multislide));
		});
	});
}

window.addEvent('domready', function()
{
	var elements, elementIndex, emailAddress, correctedEmailAddress;

	elements = $$('a[href]');
	for (elementIndex = 0; elementIndex < elements.length; elementIndex++)
	{
		if (elements[elementIndex].get('href').match(/^mailto:/i))
		{
			emailAddress = elements[elementIndex].get('href').replace(/mailto:/i, '');
			correctedEmailAddress = emailAddress.replace(/\*/g, '@').replace(/\|/g, '.');
			elements[elementIndex].set('href', elements[elementIndex].get('href').replace(emailAddress, correctedEmailAddress));
			elements[elementIndex].set('html', elements[elementIndex].get('html').replace(new RegExp(emailAddress.replace(/([*|])/g, '\\$1'), 'i'), correctedEmailAddress));
		}
	}

	elements = $$('.emailTransform');
	for (elementIndex = 0; elementIndex < elements.length; elementIndex++)
	{
		elements[elementIndex].set('text', elements[elementIndex].get('text').replace(/\*/g, '@').replace(/\|/g, '.'));
	}
});
