if(!window.console){console={log:function(){}}}
(function($) {
var cache = [];
$.preLoadImages = function() {
	var args_len = arguments.length;
	for (var i = args_len; i--;) {
		var cacheImage = document.createElement('img');
		cacheImage.src = arguments[i];
		console.log("Preloading "+arguments[i]);
		cache.push(cacheImage);
	}
}
$.fn.styleInputs = function() {
	if( !this.data("inputStyled") ){
		this
		.wrap("<span class='text-field'><span></span></span>")
		.focus(function(){
			$(this).closest("span.text-field").addClass("focus");
		})
		.blur(function(){
			$(this).closest("span.text-field").removeClass("focus");
		})
		.data("inputStyled",true);
	}
}
$.fn.clickerate = function(){
	return this.each(function(){
		if( !$(this).data("clickerSetup") ) {
			$(this).data("clickerSetup",true).wrap("<span class='input-clicker'><span></span></span>");
			var $upLink = $("<a class='up' href='#'>Up</a>").click(function(){
				if( !$upLink.clickholding )
					$upLink.trigger("clickup.clicker");
				$upLink.clickholding = false;
				return false;
			}).clickHold(200, {repeat: true}, function(){
				$upLink.clickholding = true;
				$upLink.trigger("clickup.clicker");
			}).insertAfter( this );

			var $downLink = $("<a class='down' href='#'>Down</a>").click(function(){
				if( !$downLink.clickholding )
					$downLink.trigger("clickdown.clicker");
				$downLink.clickholding = false;
				return false;
			}).clickHold(200, {repeat: true}, function(){
				$downLink.clickholding = true;
				$downLink.trigger("clickdown.clicker");
			}).insertAfter( this );
		}
	});
}
})(jQuery)

$(document).ready(function(){
	$("#combo-box>a")
	.live("mouseover",function() {
			$(this).parent().addClass("hover");
	})
	.live("mouseout",function(){
		$(this).parent().removeClass("hover");
	})
	.live("click",function(){
		$(this).siblings("div").slideToggle(200);
		return false;
	})
	.bind("clickoutside",function(){
		$(this).siblings("div").slideUp(100);
	});

	$("input[placeholder]").each(function(){
		var $input = $(this);
		$input.val( $input.attr("placeholder") ).focus(function(){
			if( $input.val() == $input.attr("placeholder") )
				$input.val("");
		}).blur(function(){
			if( $input.val() == "" )
				$input.val($input.attr("placeholder"));
		});
	});

	$("div.popout-menu").each(function(){
		var $menu = $(this);
		$menu.closest("li").addClass("has-menu");
		$menu
		.siblings("a")
		.toggle(function(){
			$("div.popout-menu").not($menu).hide().siblings("a.current").removeClass("current");
			$menu.css("left",218).animate({left:233},{ queue:false, duration:250 }).fadeIn(250);
			$(this)
//				.css("opacity",.25)
				.addClass("current")
//				.animate({opacity:1},200)
				.one("clickoutside",function(){
					$menu.animate({left:218},{ queue:false, duration:150 }).fadeOut(150);
					$(this).removeClass("current").unbind(".");
				});
			return false;
		},function(){
			$menu.animate({left:218},{ queue:false, duration:200 }).fadeOut(200);
			$(this).removeClass("current").unbind("clickoutside");
			return false;
		});

		$menu.children("ul").columnize({
			maxColumns: 3,
			maxItems: 9
		});
		$menu.css("top", 5-$menu.height()/2 );
	});

	$("a.show-video").click(function(){
		var id = $(this).attr("id");
		$("#video-player").slideDown(250);
		if( id == "pic1" ){
			$("#video1").show();
			$("#video2,#video3").hide();
		} else
		if( id == "pic2" ){
			$("#video2").show();
			$("#video1,#video3").hide();
		} else
		if( id == "pic3" ){
			$("#video3").show();
			$("#video1,#video2").hide();
		}
		return false;
	});

	$("input[type=text]:not(.clicker)").styleInputs();
	$("label").inFieldLabels();
	if( !$.browser.msie ) /* Uniform doesn't work well with IE6+ */
		$("select#state-select").uniform();
	$("input.clicker").clickerate();

	$("div.dropdown-menu>a").click(function(){
		$(this).siblings("ul").slideToggle(200);
		return false;
	}).each(function(){
		console.log("Found a dropdown.");
	}).parent().bind("clickoutside",function(){
		$(this).children("ul").slideUp(100);
	});

	var clickerUpdated;
	function removeUpdatedClass(){
		$("ul#cart").removeClass("updated increment decrement");
	}

	$("#product-grid>li").each(function(){
		var $li = $(this);
		$(this).find("input").focus(function(){
			$li.addClass("input-focused");
		}).blur(function(){
			$li.removeClass("input-focused");
		}).keyup(function(){
			$(this).trigger("keyup.clicker");
			return false;
		});

	})
	.hover(function(){
		$(this).addClass("show-info");
	},function(){
		$(this).removeClass("show-info");
	});

	// This really needs to be optimized
	$(document).bind("clickup.clicker",function(e){
		var $li = $(e.target).closest("li");

		var	qty = $li.attr("data-qty-in-cart");
		qty++;

		var $badge = $li.find("span.badge b");
		if( qty == 1 )
			$badge.parent().fadeIn(150);

		$badge.text(qty);

		$li.attr("data-qty-in-cart",qty).find("input").val(qty);

		var $cart = $("ul#cart").addClass("updated increment");
		$cart.find("strong span").text("999.99");
		$("#item-count").text("99");

		if( clickerUpdated )
			clearTimeout(clickerUpdated);
		clickerUpdated = setTimeout( removeUpdatedClass, 1000 );
		console.log("Increment li#"+$li.attr("id"));
	}).bind("clickdown.clicker",function(e){
		var $li = $(e.target).closest("li");

		var	qty = $li.attr("data-qty-in-cart");
		qty--;

		if( qty < 0 )
			return;

		var $badge = $li.find("span.badge b");
		if( qty == 0 )
			$badge.parent().fadeOut(150);

		$badge.text(qty);

		$li.attr("data-qty-in-cart",qty).find("input").val(qty);

		var $cart = $("ul#cart").addClass("updated decrement");
		$cart.find("strong span").text("000.00");
		$("#item-count").text("00");

		if( clickerUpdated )
			clearTimeout(clickerUpdated);
		clickerUpdated = setTimeout( removeUpdatedClass, 1000 );

		console.log("Decrement li#"+$li.attr("id"));
	}).bind("keyup.clicker",function(e){
		var $li = $(e.target).closest("li");
		var qty = $li.find("input").val();

		if( parseInt( qty ) ){
		}

		$li.find("input").text(qty);

		if( qty < 0 )
			return;

		var $badge = $li.find("span.badge b");
		if( qty != 0 ){
			$badge.text(qty);
			$badge.parent().show();
		} else {
			$badge.parent().hide();
		}

		$li.attr("data-qty-in-cart",qty);
		$badge.text(qty);

		// Success
		var $cart = $("ul#cart").addClass("updated");
		$cart.find("strong span").text("555.55");
		$("#item-count").text("55");

		if( clickerUpdated )
			clearTimeout(clickerUpdated);
		clickerUpdated = setTimeout( removeUpdatedClass, 1000 );
	});

	$("#mainslide-inner li a").click(function(){
		if( !$(this).parent().hasClass("active") ){
			$("#mainslide-inner li.active").removeClass("active");
			$(this).parent().addClass("active");
//			Cufon.refresh("#mainslide-inner li a");
			return false;
		}
	});
	$("a.radio").click(function(){
		$(this).addClass("selected").siblings("a").removeClass("selected");
		return false;
	});
	$("a.select-toggle").click(function(){
		var $link = $(this);
		if( $link.hasClass("selected") ){
			$link.removeClass("selected").text("select");
		} else {
			$link.addClass("selected").text("Yeah!");
		}
		return false;
	});
});
