document.swapHeader = function(header, container) {
	if(container = $(container)) {
		container.getElements(header).each(function(el) {
			if(!el.headerSwapped) {
				el.innerHTML = '<img src="images/textgen/image.php?title='+escape(el.innerHTML)+'" border="0" onload="$(this).fixPng();">';
				el.headerSwapped = true;
			}
		});
	}
}

document.togglePalette = function(palette) {
	['jewelry', 'gemstones'].each(function(el) {
		if(el != palette && (el = $(el+'Palette'))) {
			el.hide().getNext().removeClass('menuPaletteOn');
		}
	});
	
	if(palette && (palette = $(palette+'Palette'))) {
		palette.show().getNext().addClass('menuPaletteOn');
	}
}

document.mapInit = function() {

	var markerHTML = "<table cellspacing='0' cellpadding='0' border='0' style='margin-top: 8px;'><tr><td><img src='images/content/contact_us/logo.jpg' width='125' height='36' border='0' title='The Gem Gallery'></td><td dvalign='top' style='padding-left: 10px; padding-right: 8px;'>The Gem Gallery<br>402 East Main Street<br>Bozeman, Montana 59715</td></tr></table><div style='clear: both;'></div>";
	
	if(GBrowserIsCompatible()) {
		var gmap = new GMap2(document.getElementById("gmap"));
		gmap.addControl(new GSmallMapControl());		
		gmap.addControl(new GMapTypeControl());
		gmap.setCenter(new GLatLng(45.67900, -111.03164), 16);
		gmap.enableScrollWheelZoom();
		var marker = new GMarker(new GLatLng(45.67900, -111.03164));		
		gmap.addOverlay(marker);		
		GEvent.addListener(marker, "click", function() {
			marker.openInfoWindowHtml(markerHTML);
		});		
		marker.openInfoWindowHtml(markerHTML);	
	}

}

document.resizeMediaBoxes = function() {
	var mediaSlip = $('mediaSlipContainer');
	if(mediaSlip && mediaSlip.isDisplayed()) {
		mediaSlip.getElements("div.boxLeft,div.boxRight").each(function(el){el.setStyle("height", el.parentNode.offsetHeight); if(Browser.Engine.trident4) {el.firstChild.setAttribute("height", el.parentNode.offsetHeight);}});
	}
}

window.addEvent('resize', document.resizeMediaBoxes);

document.toggleBubble = function(from, bubble, hide) {
	if((from = $(from)) && (bubble = $(bubble+'Bubble'))) {
		if(hide) {
			hide.each(function(el) {
				el = $(el+'Bubble');
				if(el && el != bubble && el.isDisplayed(true)) {
					el.hide(true);
					el.getPrevious().imgOn(false);
				}
			});
		}
		bubble.toggle(true);
		from.imgOn(bubble.isDisplayed(true));
	}
}

document.toggleAllCheckboxes = function(container, on) {
	if(container = $(container)) container.getElements('input[type=checkbox]').each(function(el) {el.checked = on;if(el.getNext() && el.getNext()) {el.getNext().select('prettyCheckbox', on);}});
}

document.shareFacebook = function(url, title) {
	var width = 656;
	var height = 434;
	var left = (window.screenX+50);
	var top = (window.screenY+50);
	var newWindow = open('http://www.facebook.com/sharer.php?u='+url+'&t='+title, '_blank', 'width='+width+',height='+height+',left='+left+',top='+top+',scrollbars=no,resizable=yes,toolbar=no,menubar=no,titlebar=no,status=no');
}

document.aniMiniCart = function() {
	var el = $('cartLink');
	
	if(el) {
		if(!el.ani) {
			el.ani = new Fx.Tween(el.id, {duration: 2500, property: 'color', link: 'chain'});
		}
		
		el.ani.start('#d90000', '#ffffff');
	}
}

document.updateQuantity = function(who, id, price) {
	var priceEl = document.getElementById('jt_product_price_'+id);
	
	if(priceEl && who) {
		who.value = who.value.replace(/[^\d]/g, '');
		
		if(who.value == '' || price == 0) {
			priceEl.innerHTML = '-';
		} else {
			priceEl.innerHTML = '$'+number_format(who.value*price, 2, '.', ',');
		}
	}
}

document.toggleDisabled = function(from, toEls, clearEls) {
	if(from) {
		for(var i = 0; i < toEls.length; i++) {
			var el = document.getElementById(toEls[i]);
			
			if(el) {
				if(from.checked) {
					el.value = '';
					el.disabled = true;
					el.style.backgroundColor = '#e4e4e4';
				} else {
					el.disabled = false;
					el.style.backgroundColor = '#ffffff';
				}
			}
		}
		
		if(from.checked) {
			if(clearEls) {
				clearEls.each(function(clearError) {
					var clearMsg;
					if(clearMsg = $(clearError+'Msg')) {
						(function() {clearMsg.innerHTML = '&nbsp;';}).delay(10);
					}
					if(clearError = $(clearError+'Error')) {
						(function() {clearError.replaceClass('fItemError', 'fItem');}).delay(10);
					}
				});
			}
		}
	}
}

/* number_format Made by Mathias Bynens <http://mathiasbynens.be/> */
function number_format(a, b, c, d) {
 a = Math.round(a * Math.pow(10, b)) / Math.pow(10, b);
 e = a + '';
 f = e.split('.');
 if (!f[0]) {
  f[0] = '0';
 }
 if (!f[1]) {
  f[1] = '';
 }
 if (f[1].length < b) {
  g = f[1];
  for (i=f[1].length + 1; i <= b; i++) {
   g += '0';
  }
  f[1] = g;
 }
 if(d != '' && f[0].length > 3) {
  h = f[0];
  f[0] = '';
  for(j = 3; j < h.length; j+=3) {
   i = h.slice(h.length - j, h.length - j + 3);
   f[0] = d + i +  f[0] + '';
  }
  j = h.substr(0, (h.length % 3 == 0) ? 3 : (h.length % 3));
  f[0] = j + f[0];
 }
 c = (b <= 0) ? '' : c;
 return f[0] + c + f[1];
}

function createExpirationDate(dateFieldID, monthFieldID, yearFieldID) {
	var dateField = document.getElementById(dateFieldID);
	var monthField = document.getElementById(monthFieldID);
	var yearField = document.getElementById(yearFieldID);

	if (dateField && monthField && yearField) {
		if (monthField.value != "" || yearField.value != "") {
			dateField.value = monthField.value + "/" + yearField.value;
		}
		else {
			dateField.value = "";
		}
		
	}

}

document.toggleMatchingProducts = function(button) {
	var container, content, shimmer;
	if((button = $(button)) && (container = $('matchingProductsContainer')) && (content = $('matchingProductsContent')) && (shimmer = $('matchingProductsShimmer'))) {
		var newHeight = container.isOpen ? 0 : content.getSize().y;
		if(!container.mpAni) {
			container.mpAni = new Fx.Tween(container, {property: 'height', duration: 500, transition: Fx.Transitions.Quart.easeOut});
		}
		
		if(container.isOpen) jt.hideSlip('mp');
		container.mpAni.start(newHeight);
		container.isOpen = !container.isOpen;
		button.getFirst().getNext().imgOn(container.isOpen);
		if(shimmer.ani) shimmer.ani.cancel().set('-380px 0px');
	}
}

document.showShimmer = function() {
	var el = $('matchingProductsShimmer');
	var container = $('matchingProductsContainer');
	if(el && container && !container.isOpen) {
		if(!el.ani) el.ani = new Fx.Tween(el, {duration: 2250, property: 'background-position', transition: Fx.Transitions.Sine.easeInOut, link: 'chain'});
		el.ani.start('-380px 0px', '300px 0px');
		el.ani.start('300px 0px', '-380px 0px');
	}
}

document.togglePrettyCheckbox = function(el) {
	if(el = $(el)) {
		var input = el.getPrevious();
		if(input) {
			input.checked = !input.checked;
			el.select('prettyCheckbox', input.checked);
		}
	}
}
