(function ($) {
// VERTICALLY ALIGN FUNCTION
$.fn.vAlign = function() {
	return this.each(function(i){
	var ah = $(this).outerHeight();
	var ph = $(this).parent().height();
	var mh = Math.ceil((ph-ah) / 2);
	$(this).css('margin-top', mh);
	});
};
})(jQuery);

$.fn.id = function(attribute) {
	if (!attribute) attribute = 'id';
	var id = this.eq(0).attr(attribute);
	return id ? parseInt(id.match(/(\d+)$/)[1], 10) : null;
};

function formatCurrency(num, dollarSign) {
	num = num.toString().replace(/\$|\,/g,'');
	if (isNaN(num)) num = "0";
	var sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	var cents = num%100;
	num = Math.floor(num/100).toString();
	if (cents<10) cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++) {
		num = num.substring(0,num.length-(4*i+3))+','+num.substring(num.length-(4*i+3));
	}
	if (dollarSign == undefined) {
		dollarSign = '$';
	}
	return (((sign)?'':'-') + dollarSign + num + '.' + cents);
}

function parseCurrency(str) {
	return parseFloat(str.replace('$', ''));
}

// Shopping Cart Code

$(function(){
	
	$('.cart .quantity INPUT').change(updateTotals);
	
	function showNoItemsMsgIfNoItems() {
		if ($('.cart TBODY TR').length == 0) {
			$('.cart, .cart-buttons').hide();
			$('.cart-no-items').fadeIn('normal');
		} else {
			$('.cart, .cart-buttons').show();
			$('.cart-no-items').hide();
		}
	}
	
	function updateTotals() {
		var total = 0;
		var quantities = [];
		$('.cart .quantity INPUT').each(function() {
			var $row = $(this).parents('TR:first');
			var quantity = parseInt($(this).val(), 10);
			if (isNaN(quantity)) quantity = 0;
			quantity = Math.abs(quantity);
			$(this).val(quantity);
			var unit_price = parseCurrency($('.unit_price', $row).text());
			var subtotal = quantity * unit_price;
			$('.subtotal', $row).text(formatCurrency(subtotal));
			total += subtotal;
			quantities.push({id:$row.id(), quantity:quantity});
		});
		total += parseCurrency($('.cart .shipping').text());
		$('.cart .total').text(formatCurrency(total));
		$.post('/cart/update_quantities/', {data: quantities});
	}
	
	$('.cart .remove').click(function(){
		var $row = $(this).parents('TR:first');
		$.post('/cart/remove', {id:$row.id()});
		$row.fadeOut(500, function(){
			$(this).remove();
			updateTotals();
			showNoItemsMsgIfNoItems();
		})
		return false;
	});
	
	showNoItemsMsgIfNoItems();
	
});

/* Vertically align gallery images */

$(function(){
	$('.gallery-thumbnail IMG').load(function(){
		$(this).vAlign();
	});
});

$(window).load(function(){
	$('.gallery-thumbnail IMG').vAlign();
});

/* Menu Rollover Code */
$.fn.rolloverMenu = function(){
	return this.each(function(){
		var active = $('LI.active', this);
		active.addClass('over');
		$('LI', this).hover(
			function(){
				active.removeClass('over');
				$(this).addClass('over');
			},
			function(){
				$(this).removeClass('over');
				active.addClass('over');
			}
		);
	});
};

$.fn.dropdownMenu = function(){
	return this.each(function(){
		var active = $('LI.active', this);
		$('LI', this).hover(
			function(){
				active.removeClass('active');
				$(this).addClass('over');
			},
			function(){
				$(this).removeClass('over');
				active.addClass('active');
			}
		);
	});
};

$(function(){

	$("#slider").slides({
		preload: true,
		effect: 'fade',
		fadeSpeed: 250,
		play: 8000,
		crossfade: true,
		generatePagination: false,
		generateNextPrev: false,
		autoHeight: true
	});


	$("#slider").hover( function() {
		$('.slides-nav').fadeIn(200);
		$('.pagination').fadeIn(200);
	}, function () {
		$('.slides-nav').fadeOut(200);
		$('.pagination').fadeOut(200);
	});
	
});

$(function(){
	$('.base TABLE').each(function(){
		var i = 0;
		$('TR', this).each(function(){
			if ($('TH',this).length == 0) {
				if (++i % 2 == 0) {
					$(this).addClass('even');
				}
			}
		});
	});
});

/*$(function(){
	$('a[rel^=fancybox]').fancybox({
		zoomSpeedIn:400,
		zoomSpeedOut:400,
		overlayShow: true,
		overlayColor: '#000',
		overlayOpacity: 0.8,
		hideOnContentClick:false
	});
});*/

$(function(){
	$('A, AREA').filter(function(){
		var href = $(this).attr('href');
		return href && !this.target && ((href.indexOf(window.location.hostname) == -1 && href.match(/^https?/i)) || href.match(/\.pdf$/i));
	}).attr('target', '_blank');
});

/*$(function(){
	$('IMG[align=left]').addClass('alignLeft');
	$('IMG[align=right]').addClass('alignRight');
	
	$('HR').replaceWith('<div class="hr"></div>');
});*/



