


/* QuickView Javascript */
/* ---------------------------------------- */

//quickViewcommands[0] = "show" action
//quickViewcommands[1] = "add product" action
var quickViewCommands = new Array(2);
quickViewCommands[0] = "/catalog/quickview.jsp";
quickViewCommands[1] = "/checkout/add_item.cmd";

var quickViewContainerId = "#widget-quickview";
var quickViewCloseButtonsClass = ".js-quickviewClose";
var quickviewContainerHTML = '<div id="widget-quickview"><!--[if lte IE 6]><iframe src="javascript:false;" id="qvFrame"></iframe><![endif]--></div>';
var quickviewLoadingHTML = '<div class="quickview-loading">'+
									'	<div id="quickviewTop"></div>'+
									'	<div id="quickviewBody"><div id="quickviewContent"></div></div>' +
									'	<div id="quickviewBottom"></div>'+
							  		'</div>';

/* Function(s) for QuickView */

function loadQuickView(page, params) {
	var params = $.extend({
		ts : lib.utils.timestamp()
	}, params);
	
	lib.layer.create(quickViewContainerId, {
		closeSelector : quickViewCloseButtonsClass,
		url : page,
		defaultContent : quickviewLoadingHTML,
		keepCentered : true,
		method : "get",
		data : params
	});
};

function closeQuickView() { lib.layer.remove(quickViewContainerId); };

function addProductFromQuickView() {
	/* Add all the parameters */
	params = {};
	$(quickViewContainerId + " select, " + quickViewContainerId + " input[type!=image]").each(function() {
		params[$(this).attr("name")] = $(this).val();
	});
	
	/* Reload the Quickview and progress */
	loadQuickView(quickViewCommands[1], params);
	//loadQuickView(quickViewCommands[0], params);
};

function launch_quickview(parameterSet) {
	if( parameterSet[0] == "p" ) {
		var params = { productId : parameterSet[1] };
	} else {
		var params =  { ensembleId : parameterSet[1] };
	}
	params = $.extend(params, {
		parentCategoryId : parameterSet[2],
		categoryId : parameterSet[3],
		subCategoryId : parameterSet[4]
	});
	if (parameterSet[5] != null && parameterSet[5] != "null") {
		params = $.extend(params, {
			productVariantId : parameterSet[5]
		});
	}
	if (parameterSet[6] != null && parameterSet[6] != "null") {
		params = $.extend(params, {
			itemGUID : parameterSet[6]
		});
	}
	if (parameterSet[7] != null && parameterSet[7] != "null") {
		params = $.extend(params, {
			quantity : parameterSet[7]
		});
	}
	if (parameterSet[8] != null && parameterSet[8] != "null") {
		params = $.extend(params, {
			isFreeProductItem : parameterSet[8]
		});
	}
	loadQuickView(quickViewCommands[0], params);
}

function setup_quickview() {
	//var imgHTML = '<a id="widget-quickview-but" href="#"><img src="/assets/images/uc_qv/but-cat-quickview.png" alt="Quickview" /></a>';
	var imgHTML = '<a id="widget-quickview-but" href="#"><img src="https://images2.pacsun.com/is/servlet/izoom/PacSunV2/btn_quickView?$img_gif$&$ext=.gif" alt="Quick Look" /></a>';
	var qvTimer;
	$(".widget-app-quickview").each(function() {
		var qvObj = $(this).parents(".product_image_container").find(".prodStr");
		var parameterSet = $(qvObj).val().split("-");

		$(this).click(function(evt) {
			evt.preventDefault();
			launch_quickview(parameterSet);
		});

		$(this).mouseover(function() {
			if( typeof qvTimer != undefined )
			{ clearTimeout(qvTimer); }
			
			if( $("#widget-quickview-but", $(this).parent().parent()).size() == 0 )
			{
				$("#widget-quickview-but").remove();	
				$(this).parent().parent().append(imgHTML);
				
				$("#widget-quickview-but").mouseover(function() {
					if( typeof qvTimer != undefined )
					{ clearTimeout(qvTimer); }
				});
			}
			$("#widget-quickview-but").click(function(evt) {
				evt.preventDefault();
				launch_quickview(parameterSet);
			});
		});
		
		$(this).mouseout(function() {
			if( typeof qvTimer != undefined )
			{ clearTimeout(qvTimer); }
			qvTimer = setTimeout(function() { $("#widget-quickview-but").remove(); }, 250 );
		});
	});

	$(".editLink").each(function() {
		var index = this.id.substring((this.id.indexOf("-")+1),this.id.length);
		var qvObj = $("#prodStr" + index);
		var parameterSet = $(qvObj).val().split("-");

		$(this).click(function(evt) {
			evt.preventDefault();
			launch_quickview(parameterSet);
		});
	});

	$(".ymalLink").each(function() {
		var index = this.id.substring((this.id.indexOf("-")+1),this.id.length);
		var qvObj = $("#ymalProdStr" + index);
		var parameterSet = $(qvObj).val().split("-");

		$(this).click(function(evt) {
			evt.preventDefault();
			launch_quickview(parameterSet);
		});
	});
};

$(function() {
	setup_quickview();
});
/* -------------------------- */