	
		function changeImgWork(towhat) {
			handle = document.getElementById('fullImage');
			handleDiv = document.getElementById('fullImageDiv');
			handleDiv.style.backgroundImage = 'url(' + handle.src + ')';
			handle.style.visibility = 'hidden';
			handle.src = towhat;
		}
		function changeImg(towhat) {
			sendwhat = towhat;
			setTimeout("changeImgWork(sendwhat)", 250);
		}
		
		function changeImgBorder(towhat) {
			send = towhat;
			setTimeout("changeImgBorderWork(send)", 250);
		}
		
		function fadeIn(objId,opacity) {
			//original increment 10, delay 100
			//optimal increment 10, delay 50
			if (document.getElementById) {
				obj = document.getElementById(objId);
				obj.style.visibility = 'visible';
				if (opacity <= 100) {
					setOpacity(obj, opacity);
					opacity += 20;
					window.setTimeout("fadeIn('"+objId+"',"+opacity+")", 50);
				}
			}
		}
		
		function popup_dr() {
			window.open('/wcsstore/ConsumerSoffe/StaticPages/drirelease_difference.html', 'DRFG', 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=320,height=380')
		}
		function popup_fg() {
			window.open('/wcsstore/ConsumerSoffe/StaticPages/freshguard_difference.html', 'DRFG', 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=320,height=380')
		}
		
		// position of the tooltip relative to the mouse in pixels //
		var offsetx = 12;
		var offsety =  12;
		
		function newelement(newid) { 
			if(document.createElement) { 
				var el = document.createElement('div'); 
				el.id = newid;     
				with(el.style) { 
					display = 'none';
					position = 'absolute';
				} 
				el.innerHTML = '&nbsp;'; 
				document.body.appendChild(el); 
			} 
		} 
		
		var ie5 = (document.getElementById && document.all); 
		var ns6 = (document.getElementById && !document.all); 
		var ua = navigator.userAgent.toLowerCase();
		var isapple = (ua.indexOf('applewebkit') != -1 ? 1 : 0);
		
		function getmouseposition(e) {
			if(document.getElementById) {
				var iebody=(document.compatMode && document.compatMode != 'BackCompat') ? document.documentElement : document.body;
				pagex = (isapple == 1 ? document.body.scrollLeft:(ie5)?iebody.scrollLeft:window.pageXOffset);
				pagey = (isapple == 1 ? document.body.scrollTop:(ie5)?iebody.scrollTop:window.pageYOffset);
				mousex = (ie5)?event.x:(ns6)?clientX = e.clientX:false;
				mousey = (ie5)?event.y:(ns6)?clientY = e.clientY:false;
				
				if (parseInt(navigator.appVersion) > 3) {
					if (navigator.appName=="Netscape") {
						windowx = window.innerWidth - 35;
						windowy = window.innerHeight;
					}
					if (navigator.appName.indexOf("Microsoft") != -1) {
						windowx = document.body.offsetWidth - 26;
						windowy = document.body.offsetHeight;
					}
				}
				
				var lixlpixel_tooltip = document.getElementById('tooltip');
				
				lixlpixel_tooltip.style.left = (mousex+pagex+offsetx) + 'px';
				lixlpixel_tooltip.style.top = (mousey+pagey+offsety) + 'px';
			}
		}
		
		function tooltipShow(tip) {
			if(!document.getElementById('tooltip')) newelement('tooltip');
			var lixlpixel_tooltip = document.getElementById('tooltip');
			lixlpixel_tooltip.innerHTML = tip;
			lixlpixel_tooltip.style.display = 'block';
			document.onmousemove = getmouseposition;
		}
		
		function tooltipHide() {
			document.getElementById('tooltip').style.display = 'none';
		}
		
		function numbersOnly(myfield, e, dec) {
			var key;
			var keychar;
			
			if (window.event) {
				key = window.event.keyCode;
			}
			else if (e) {
				key = e.which;
			}
			else {
				return true;
			}
			keychar = String.fromCharCode(key);
			// control keys
			if ((key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==27)) {
				return true;
			}
			// numbers
			else if ((("0123456789").indexOf(keychar) > -1)) {
				return true;
			}
			else {
				return false;
			}
		}
		
		
		var hD="0123456789ABCDEF";
		var fadestep = 0;
		var fadestep2 = 0;
		
		function d2h(d) {
			var h = hD.substr(d&15,1);
			while(d > 15) {
				d>>=4;
				h=hD.substr(d&15,1)+h;
			}
			return h;
		}
		
		function h2d(h) {
			return parseInt(h,16);
		}
		
		function fadeError() {
			handle = document.getElementById('errorborder');
			if (fadestep < 256) {
				window.setTimeout("fadeError();",10);
				var newg = "00";
				var newb = "00";
				var bord = "00";
				newg = d2h(fadestep);
				newb = d2h(fadestep);
				bord = d2h(fadestep);
				if (newg.length == 1) {
					newg = "0"+newg;
				}
				if (newb.length == 1) {
					newb = "0"+newb;
				}
				if (bord.length == 1) {
					bord = "0"+bord;
				}
				bord = "#" + bord + bord + bord;
				newcolor = '#FF'+newg+newb;
				handle.style.backgroundColor = newcolor;
				handle.style.border = '1px solid '+bord;
				fadestep++;
			}
			else {
				fadestep = 0;
			}
		}
		
		
		/*******************************************************
		 * 
		 * AJAX "Worker" Functions
		 * 
		 ******************************************************/
		
		var idOfTargetDivForAjaxResponse = 'ajaxSizes';
		var styleName;
		var productId;
		var selectedColorCode;
		var selectedColorName;
		var selectedSizeCode;
		var selectedSKUSize;
		var loadingTextTimer;
		var numberOfSizeOptions;
		
		function updateLoadingText() {
			var loadingTextHandle = document.getElementById('loadingText');
			var numDots = loadingTextHandle.innerHTML.substring(7).length;
			var dotsString = "";
			for (var i = 0; i < ((numDots % 5) + 1); i++) {
				dotsString += ".";
			}
			loadingTextHandle.innerHTML = 'Loading' + dotsString;
			loadingTextTimer = setTimeout(updateLoadingText, 250);
		}
		
		function getAjaxSizesForStyleAndColor() {
			if (isAjaxBusy()) {
				alert('Please wait until your most recent request finishes processing');
			}
			else {
				clearSelectList('attrValueColor');
				addToSelectList('attrValueColor', selectedColorName, selectedColorName);
				clearSelectList('attrValueSize');
				document.getElementById('swatchPostStep1').src = '/wcsstore/images/catalog/swatches/' + selectedColorCode + '.jpg';
				document.getElementById('colorNamePostStep1').innerHTML = selectedColorName;
				document.getElementById('colorCodePostStep1').innerHTML = selectedColorCode;
				document.getElementById('divPreStep1').style.display = 'none';
				document.getElementById('tdStep2').style.borderRight = '1px dashed #fff';
				document.getElementById('tdStep3').style.borderRight = '1px dashed #666';
				document.getElementById('divPreStep2').style.display = 'block';
				document.getElementById('divPreStep3').style.display = 'block';
				document.getElementById('divPostStep1').style.display = 'block';
				document.getElementById('divStep2').style.display = 'block';
				document.getElementById('divStep3').style.display = 'none';
				document.getElementById('divStep4').style.display = 'none';
				document.getElementById('ajaxSizesLoading').style.display = 'block';
				document.getElementById(idOfTargetDivForAjaxResponse).style.display = 'none';
				div = document.getElementById(idOfTargetDivForAjaxResponse);
				var params = "langId=-1&storeId=10051&catalogId=11102&";
				params += "productId=" + encodeURIComponent(productId) + "&style=" + encodeURIComponent(styleName) + "&color=" + encodeURIComponent(selectedColorCode);
				var ajaxObject1 = new ajaxObject('/webapp/wcs/stores/servlet/AjaxGetSizesByStyleAndColorView', ajaxResponseSizesForStyleAndColor);
				ajaxIsBusy = true;
				ajaxObject1.update(params);
			}
		}
				
		function ajaxResponseSizesForStyleAndColor(response, status, responseXML) {
			ajaxIsBusy = false;
			switch (status) {
				case 12030:
				case 12029:
				case 12031:
				case 12152:
				case 12159:
					getAjaxSizesForStyleAndColor();
					break;
				default:
					div = document.getElementById(idOfTargetDivForAjaxResponse);
					div.innerHTML = response;
					evalJavascript(response);
					document.getElementById('ajaxSizesLoading').style.display = 'none';
					clearTimeout(loadingTextTimer);
					div.style.display = 'inline';
			}
		}
		
		function colorSelected(colorCode, colorName) {
			busy = false;
			selectedColorCode = colorCode.trim();
			selectedColorName = colorName.trim();
			getAjaxSizesForStyleAndColor();
		}
		
		function sizeSelected(sizeCode, sizeSKUCode, addMode, sizeElement) {
			busy = false;
			selectedSizeCode = sizeCode.trim();
			selectedSKUSize = sizeSKUCode.trim();
			
			clearSelectList('attrValueSize');
			addToSelectList('attrValueSize', sizeCode, sizeCode);
			clearAllBordersOfSizeOptions();
						
			sizeElement.style.backgroundPosition = 'center center';
			sizeElement.style.backgroundRepeat = 'no-repeat'
			sizeElement.style.border = 'none';
			
			if (addMode == 'wl') {
				document.getElementById('addToCartTable').style.display = 'none';
				document.getElementById('addToWatchList').style.display = 'block';
				sizeElement.style.backgroundImage = 'url(/wcsstore/OutletStore/images/layout/productFlow/sizeNotify-selected.png)';
			}
			else {
				document.getElementById('addToWatchList').style.display = 'none';
				document.getElementById('addToCartTable').style.display = 'block';
				sizeElement.style.backgroundImage = 'url(/wcsstore/OutletStore/images/layout/productFlow/sizeAvailable.png)';
			}
			document.getElementById('divStep3').style.display = 'block';
			document.getElementById('divPreStep2').style.display = 'none';
			document.getElementById('tdStep3').style.borderRight = '1px dashed #fff';
			document.getElementById('quantitySelect').focus();		
		}
		
		function updateQuantity() {
			document.getElementById('quantity').value = document.getElementById('quantitySelect').value;
			document.getElementById('divPreStep3').style.display = 'none';
			document.getElementById('divStep4').style.display = 'block';	
		}
		
		function setBordersOfSizeOptions() {
			for (var i = 0; i < numberOfSizeOptions; i++) {
				handle = getHandle("sizeOption_" + i);
				cN = handle.className;
				switch (cN) {
					case "sizeOptionAvailable":
						handle.style.backgroundImage = 'url(/wcsstore/OutletStore/images/layout/productFlow/sizeAvailable.png)';
						handle.style.backgroundPosition = 'center center';
						handle.style.backgroundRepeat = 'no-repeat'
						handle.style.border = 'none';
						break;
					case "sizeOptionNotify":
						handle.style.backgroundImage = 'url(/wcsstore/OutletStore/images/layout/productFlow/sizeNotify-selected.png)';
						handle.style.backgroundPosition = 'center center';
						handle.style.backgroundRepeat = 'no-repeat'
						handle.style.border = 'none';
						break;
				}
			}
		}
		
		function clearAllBordersOfSizeOptions() {
			for (var i = 0; i < numberOfSizeOptions; i++) {
				handle = getHandle("sizeOption_" + i);
				cN = handle.className;
				switch (cN) {
					case "sizeOptionAvailable":
						handle.style.backgroundImage = 'url(/wcsstore/OutletStore/images/layout/productFlow/sizeAvailable-waiting.png)';
						handle.style.backgroundPosition = 'center center';
						handle.style.backgroundRepeat = 'no-repeat'
						handle.style.border = 'none';
						break;
					case "sizeOptionNotify":
						handle.style.backgroundImage = 'url(/wcsstore/OutletStore/images/layout/productFlow/sizeNotify.png)';
						handle.style.backgroundPosition = 'center center';
						handle.style.backgroundRepeat = 'no-repeat'
						handle.style.border = 'none';
						break;
				}
			}
		}
		
		function incrementQuantity() {
			if (!isNaN(parseInt(getHandle('quantitySelect').value))) {
				getHandle('quantitySelect').value = parseInt(getHandle('quantitySelect').value) + 1;
			}
			else {
				getHandle('quantitySelect').value = 1;
			}
			updateQuantity();
		}
		
		function decrementQuantity() {
			if ((!isNaN(parseInt(getHandle('quantitySelect').value))) && ((parseInt(getHandle('quantitySelect').value)) > 1)) {
				getHandle('quantitySelect').value = parseInt(getHandle('quantitySelect').value) - 1;
			}
			else {
				getHandle('quantitySelect').value = 1;
			}
			updateQuantity();
		}
						
		function resetStepBackgrounds() {
			document.getElementById('divStep1Header').style.backgroundColor = "transparent";
			document.getElementById('divStep2Header').style.backgroundColor = "transparent";
		}
		
		
		var nlbFade_hextable = [ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' ]; // used for RGB to Hex and Hex to RGB conversions
		var nlbFade_elemTable = new Array( ); // global array to keep track of faded elements
		var nlbFade_t = new Array( ); // global array to keep track of fading timers
		function NLBfadeBg( elementId, startBgColor, endBgColor, fadeTime )
		{
			var timeBetweenSteps = Math.round( Math.max( fadeTime / 300, 30 ) );
			var nlbFade_elemTableId = nlbFade_elemTable.indexOf( elementId );
			if( nlbFade_elemTableId > -1 )
			{
				for( var i = 0; i < nlbFade_t[nlbFade_elemTableId].length; i++ )
					clearTimeout( nlbFade_t[nlbFade_elemTableId][i] );
			}
			else
			{
				nlbFade_elemTable.push( elementId );
				nlbFade_elemTableId = nlbFade_elemTable.indexOf( elementId );
			}
			var startBgColorRGB = hexToRGB( startBgColor );
			var endBgColorRGB = hexToRGB( endBgColor );
			var diffRGB = new Array( );
			for( var i = 0; i < 3; i++ )
				diffRGB[i] = endBgColorRGB[i] - startBgColorRGB[i];
			var steps = Math.ceil( fadeTime / timeBetweenSteps );
			var nlbFade_s = new Array( );
			for( var i = 1; i <= steps; i++ )
			{
				var changes = new Array( );
				for( var j = 0; j < diffRGB.length; j++ )
					changes[j] = startBgColorRGB[j] + Math.round( ( diffRGB[j] / steps ) * i );
				if( i == steps )
					nlbFade_s[i - 1] = setTimeout( 'document.getElementById("'+elementId+'").style.backgroundColor = "'+endBgColor+'";', timeBetweenSteps*(i-1) );
				else
					nlbFade_s[i - 1] = setTimeout( 'document.getElementById("'+elementId+'").style.backgroundColor = "'+RGBToHex( changes )+'";', timeBetweenSteps*(i-1) );
			}
			nlbFade_t[nlbFade_elemTableId] = nlbFade_s;
		}
		function hexToRGB( hexVal )
		{
			hexVal = hexVal.toUpperCase( );
			if( hexVal.substring( 0, 1 ) == '#' )
				hexVal = hexVal.substring( 1 );
			var hexArray = new Array( );
			var rgbArray = new Array( );
			hexArray[0] = hexVal.substring( 0, 2 );
			hexArray[1] = hexVal.substring( 2, 4 );
			hexArray[2] = hexVal.substring( 4, 6 );
			for( var k = 0; k < hexArray.length; k++ )
			{
				var num = hexArray[k];
				var res = 0;
				var j = 0;
				for( var i = num.length - 1; i >= 0; i-- )
					res += parseInt( nlbFade_hextable.indexOf( num.charAt( i ) ) ) * Math.pow( 16, j++ );
				rgbArray[k] = res;
			}
			return rgbArray;
		}
		function RGBToHex( rgbArray )
		{
			var retval = new Array( );
			for( var j = 0; j < rgbArray.length; j++ )
			{
				var result = new Array( );
				var val = rgbArray[j];
				var i = 0;
				while( val > 16 )
				{
					result[i++] = val%16;
					val = Math.floor( val/16 );
				}
				result[i++] = val%16;
				var out = '';
				for( var k = result.length - 1; k >= 0; k-- )
					out += nlbFade_hextable[result[k]];
				retval[j] = padLeft( out, '0', 2 );
			}
			out = '#';
			for( var i = 0; i < retval.length; i++ )
				out += retval[i];
			return out;
		}
		if (!Array.prototype.indexOf) {
			Array.prototype.indexOf = function( val, fromIndex ) {
				if( typeof( fromIndex ) != 'number' ) fromIndex = 0;
				for( var index = fromIndex, len = this.length; index < len; index++ )
					if( this[index] == val ) return index;
				return -1;
			}
		}
		function padLeft( string, character, paddedWidth )
		{
			if( string.length >= paddedWidth )
				return string;
			else
			{
				while( string.length < paddedWidth )
					string = character + string;
			}
			return string;
		}
		
		
		
		function checkSteps() {
			var preStep1Div = document.getElementById('divPreStep1');
			var step2Div = document.getElementById('divStep2');
			var preStep2Div = document.getElementById('divPreStep2');
			var preStep3Div = document.getElementById('divPreStep3');
			var step1Header = document.getElementById('divStep1Header');			
						
			// Haven't picked color 
			if 	((preStep1Div.style.display != 'none') && (preStep2Div.style.display != 'none')) {
				//document.getElementById('divStep1Header').style.backgroundColor = "#298E00";
				//fadeError('divStep1Header');
				NLBfadeBg('divStep1Header','#000000','#298E00','2000');
			}
			// Have picked color but not size
			else if ((preStep1Div.style.display == 'none') && (preStep2Div.style.display != 'none')) {
				document.getElementById('divStep1Header').style.backgroundColor = "transparent";
				//document.getElementById('divStep2Header').style.backgroundColor = "#298E00";
				//fadeError('divStep2Header');
				NLBfadeBg('divStep2Header','#000000','#298E00','2000');
			}
			// Clear all backgrounds
			else {
				resetStepBackgrounds();
			}
		}
