$('document').ready(function() {
	$("#ss-colors-p").ColorPicker({
		color: "#000000",
		onShow: function() {
			var l = $(".colorpicker").css("left");
					l = l.replace("px", "");
					l = parseInt(l)-155;

			$(".colorpicker").css("left", l+"px");
		},
		onSubmit: function(hsb, hex, rgb, el) {
			$(el).ColorPickerHide();

			var c_type = "rgb";

			var _rgb = [];
			for (i in rgb)
				_rgb.push(rgb[i]);
			var rgb_c = _rgb.join("_");

			var i = 0;
			var exists = false;
			if ($(".SSColor")[0]) {
				$(".SSColor").each(function() {
					var comps = this.id.split("-");
					var ci = parseInt(comps[2]);

					var t = $("#post_vars-colors-"+ci+"-t").val();
					var v = $("#post_vars-colors-"+ci+"-v").val();

					if (c_type == t && v == rgb_c) {
						exists = true;
						return;
					}

					if (ci >= i) {
						i = ci+1;
					}
				});
			}

			var h = '<input type="hidden" id="post_vars-colors-'+i+'-t" name="post_vars[colors]['+i+'][type]" value="rgb">';
					h += '<input type="hidden" id="post_vars-colors-'+i+'-v" name="post_vars[colors]['+i+'][value]" value="'+rgb_c+'">';
					h += '<div class="SSColor" id="ss-colors-'+i+'">';
					h += '<div class="SSColorB" style="background: #'+hex+';">&nbsp;</div>';
					h += '<div class="SSColorI">';
					h += '<div class="SSColorOA" id="ss-colors-'+i+'-oa" onclick="color_search_options(\''+i+'\');"><img src="/skin1/icons/settings.png"></div>';
					h += '<div class="SSColorR" id="ss-colors-'+i+'-r" onclick="color_search_remove(\''+i+'\');"><img src="/skin1/icons/delete.png"></div>';
					h += '</div>';
					h += '<div style="clear: both;"></div>';
					h += '</div>';
					h += '<div class="SSColorO" id="ss-colors-'+i+'-o" style="display: ;">';
					h += '<div class="SSColorOD">';
					h += '<div class="SSColorF">';
					h += '<div class="SSColorFL">Dominance</div>';
					h += '<div class="SSColorFI"><select name="post_vars[colors]['+i+'][weight]">';
					h += '<option value="5">5 (Primary)</option>';
					h += '<option value="4">4</option>';
					h += '<option value="3" selected>3</option>';
					h += '<option value="2">2</option>';
					h += '<option value="1">1 (Any amount)</option>';
					h += '</select></div>';
					h += '</div>';
					h += '<div class="SSColorF">';
					h += '<div class="SSColorFL">Precision</div>';
					h += '<div class="SSColorFI"><select name="post_vars[colors]['+i+'][proximity]">';
					h += '<option value="3">5 (Exact)</option>';
					h += '<option value="4">4</option>';
					h += '<option value="6" selected>3 (Close)</option>';
					h += '<option value="8">2</option>';
					h += '<option value="10">1 (Broad)</option>';
					h += '</select></div>';
					h += '</div>';
					h += '</div>';
					h += '</div>';

			$("#ss-colors").append(h);
		}
	});
});

function color_search_remove(c) {
	$("#ss-colors-"+c).remove();
	$("#ss-colors-"+c+"-o").remove();
	$("#post_vars-colors-"+c+"-t").remove();
	$("#post_vars-colors-"+c+"-v").remove();

	return;
}
function color_search_options(c) {
	var oe = $("#ss-colors-"+c+"-o");

	var d = (oe.css("display") == "none");
	oe.css("display", (d)?"":"none");

	return;
}

function variationPreview(variationid) {
	var v = $("#sd-p-"+variationid);
	var tn = $("#sd-tn-"+variationid);

	$(".DesignDetailsPreview").css("display", "none");
	v.css("display", "");

	$(".DDThumbnail").removeClass("DDThumbnailOver");
	tn.addClass("DDThumbnailOver");
}
function variationPreviewRestore() {
	variationPreview(current_variationid);
}

function searchToggleSection(s) {
	var se = $("#ss-"+s);
	var se_a = $("#ss-"+s+"-a");
	var se_c = $("[id^='post_vars-"+s+"-']");

	var cd = false;
	if (se_c.filter(":checked").length > 0)
		cd = true;

	var sd = false;
	if (se.css("display") != "none")
		sd = true;

	se.css("display", (sd)?"none":"");

	se_a.html((sd)?"Show":((cd)?"Clear":"Hide"));
	if (cd)
		se_c.attr("checked", false);
}

function searchToggleChecked(field) {
	var f_count = $("[id^='post_vars-"+field+"-']").length;
	var f_count_c = $("[id^='post_vars-"+field+"-']").filter("[checked=true]").length;

	var to_state = (f_count == f_count_c)?"U":"C";
	$("[id^='post_vars-"+field+"-']").attr("checked", (to_state == "C"));
	$("#ss-"+field+"-t").html((to_state == "C")?"Uncheck All":"Check All");
}

var _umto = false;
function _unmask_product(productid, variationid) {
	if (!options_checked) {
		_umto = setTimeout("_unmask_product("+productid+", "+variationid+")", 250);
		return;
	}

	clearTimeout(_umto);
	$("#sd-product").unmask();

	load_product_alt(productid, variationid);
}

function load_product_alt(pi, v) {
	var h="";
	var v=design_data.variations[v]
	var c=design_data.classifications[v.classificationid];
	var s=c.sizes[v.sizeid];
	for (p in s.associations) {
		if (p == pi)
			continue;

		var pp = s.associations[p];
		var at = (typeof pp.attributes != "undefined")?pp.attributes:false;

		var l = "";
		if (at && typeof at.STOCK != "undefined" && at.STOCK) {
			l += at.STOCK;
			for (a in at) {
				if (at[a] && at[a] != "null" && a != "STOCK")
					l += " ["+at[a]+"]";
			}
		} else {
			l += pp.product;
		}

		h += '<option value="'+p+'">'+l+'</option>';
	}
	$("#sdp-p").html(h);
	$("#sdp-variation-c").css("display", (h == "")?"none":"");
}

var first_load = false;
function load_product_form(productid, variationid) {
	var designid = $("#sdp-d").val();
	if (typeof productid == "undefined")
		var productid = $("#sdp-p").val();
	if (typeof variationid == "undefined")
		var variationid = $("#sdp-v").val();

	current_variationid = variationid;
	$(".DDThumbnail").removeClass("DDThumbnailSelected");
	$("#sd-tn-"+current_variationid).addClass("DDThumbnailSelected");

	$("#sdp-p").val(productid);
	$("#sdp-v").val(variationid);

	options_checked = false;
	$("#sd-product").mask("Loading...");

	$.post("standards.php", {mode: "standards_backs", cb: 1, designid: designid, variationid: variationid}, function(data) {
		designs_backs = data;

		var has_backs = false;
		for (d in designs_backs) {
			has_backs = true;
			break;
		}

		$("#pro-extras-b").css("display", (has_backs)?"":"none");
		$("#pe-artf-t").html(((has_backs)?"Front ":"")+"Details");

		var h = '<option value="">None</option>';
		if (!has_backs) {
		} else {
			for (d in designs_backs) {
				var dd = designs_backs[d];

				h += '<option value="'+d+'">'+dd.design+'</option>';
			}
		}

		$("#pe-artb-i").html(h);
		load_back_fields();
	}, "json");

	if (first_load) {
		$("#sd-product").load("standards.php", {mode: "product_details", action: "product_form", cb: 1, designid: designid, variationid: variationid, productid: productid}, function(data) {
			first_load = false;

			check_options();

			_unmask_product(productid, variationid);

			if ($("#livecart")[0])
				$("#livecart").css("display", "none");
			$("#pro").css("display", "");
		});
	} else {
		load_product(productid, {designid: designid, variationid: variationid});

		_unmask_product(productid, variationid);

		if ($("#livecart")[0])
			$("#livecart").css("display", "none");
		$("#pro").css("display", "");
	}
}

function load_search_form() {
	$("#sd-order").empty();
	$("#sd-order").css("display", "none");
	$("#sd-details").css("display", "none");
	$("#sd-search").css("display", "");

	$("#pro").css("display", "");
	if ($("#livecart")[0])
		$("#livecart").css("display", "none");
}

function load_design(e) {
	if (e.button !== 0 && typeof e.button !== 'undefined') {// checks to see if it was a non-left mouse-click.
		return true;
	}

	var h;
	h = $(this).attr("href");

	var comps = $(this).attr("href").split("?");
			comps = comps[1].split("&");

	var hash = "";
	for (c in comps) {
		var cc = comps[c].split("=");
		if (cc[0] == "designid") {
			hash = cc[1];
			break;
		}
	}
//		window.location.hash = hash;


	$("#sd-search").mask("Loading...");

	$("#sd-order").css("display", "none");
	$("#sd-order").load(h, {cb: 1}, function(data) {
		$("#sd-search").unmask();
		$("#sd-search").css("display", "none");

		$("#sd-details").css("display", "");
		$("#sd-order").css("display", "");

		check_options();
		load_product_alt(design_data.default_productid, design_data.default_variationid);
	});

	return false;
}

function preview_back(d) {
	if (typeof d == "undefined")
		d = $("#pe-artb-i").val();

	$(".MDPreview").css("display", "none");
	$(".MDThumbnail").removeClass("MDThumbnailSelected");

	var tt = (d != "")?designs_backs[d].design:"None";
	$(".MDPreviewTitle").html(tt);
	$(".MDPreviewInstructions").css("display", (d != "")?"none":"");

	if (d) {
		$("#sb-"+d+"-p").css("display", "");
		$("#sb-"+d+"-t").addClass("MDThumbnailSelected");
	}
}
function select_back(d) {
	$("#pe-artb-i").val(d);
	close_back();
	load_back_fields();
}
function close_back() {
	$.modal.close();
}
function _preview_backs() {
	var s = $("#pe-artb-i").val();

	var h = "";
	for (d in designs_backs) {
		var dd = designs_backs[d];
		var t = dd.thumbnail;
		var c = "MDThumbnail"+((s == d)?" MDThumbnailSelected":"");

		h += '<div class="'+c+'" id="sb-'+d+'-t" onmouseout="preview_back();" onmouseover="preview_back(\''+d+'\');" onclick="select_back(\''+d+'\');">';
		h += '<div class="MDThumbnailImage"><img src="'+t.src+'" width="'+t.image_x+'" height="'+t.image_y+'"></div>';
		h += '<div class="MDThumbnailTitle">'+dd.design+'</div>';
		h += '</div>';
	}

	var tt = (s != "")?designs_backs[s].design:"None";
	var ph = "";
			ph += '<div class="MDPreviewTitle" id="sb-t">'+tt+'</div>';
			ph += '<div class="MDPreviewInstructions" id="sb-i" style="display: '+((s != "")?"none":"")+'";>Mouse over to preview.<br><b>Click</b> to select.</div>';
	for (d in designs_backs) {
		var dd = designs_backs[d];
		var p = dd.preview;

		ph += '<div class="MDPreview" id="sb-'+d+'-p" style="display: '+((s == d)?"":"none")+';"><img src="'+p.src+'" width="'+p.image_x+'" height="'+p.image_y+'"></div>';
	}

	var m = "";
	m += '<div id="dd-backs-p" style="width: 330px; height: 400px; margin-right: 20px; overflow: auto; float: left;">'+ph+'</div>';
	m += '<div id="dd-backs-t" style="width: 315px; height: 400px; overflow: auto; float: left;">'+h+'</div>';
	m += '<div style="height: 20px; line-height: 20px; clear: both; text-align: right;"><a href="javascript: void(0);" onclick="close_back();">Close Window</a></div>';

 	$("#dd-backs").html(m);
}
function preview_backs() {
 	$("#dd-backs").modal({
 		onShow: _preview_backs,
 		overlayClose: true,
 		overlayCss: {
 			backgroundColor: "transparent"
 		},
 		containerCss: {
 			width: 665,
 			height: 425
 		}
 	});
}

function check_colors() {
	if (typeof class_hash == "undefined" || typeof class_hash["Color"] == "undefined")
		return;

	var d = $("#pe-artb-i").val();
 	var dd = (d && typeof designs_backs[d] != "undefined")?designs_backs[d]:false;

 	var color_c = (typeof class_hash["Color"] != "undefined")?class_hash["Color"]:false;
 	if (color_c) {
 		var ce = $("#po"+color_c);

 		var so = false;
 		if (dd) {
 			var cc = "4"+dd.colors;
		 	for (o in names[color_c].options) {
				var oo = names[color_c].options[o];
						oo = oo.replace(/\//g, "");

				if (oo.indexOf(cc) == 0) {
					so = o;
				}
		 	}
 		}

 		if (so) {
 			if (!$("#pc-"+color_c+"-s")[0])
 				ce.before('<span id="pc-'+color_c+'-s"></span>');

			$("#pc-"+color_c+"-s").css("display", "");
			$("#pc-"+color_c+"-s").html(names[color_c].options[so]);

 			ce.val(so);
 			ce.css("display", "none");
 			check_options();
 		} else {
 			if ($("#pc-"+color_c+"-s")[0])
 				$("#pc-"+color_c+"-s").css("display", "none");

 			ce[0].selectedIndex = 0;
 			ce.css("display", "");
 			check_options();
 		}
 	}
}

function load_back_fields() {
	check_colors();

	var d = $("#pe-artb-i").val();
 	var dd = (d && typeof designs_backs[d] != "undefined")?designs_backs[d]:false;
 	var fieldids = (d && typeof designs_backs[d].fieldids != "undefined")?designs_backs[d].fieldids:false;

	var fieldids_hash = {};
 	if (fieldids) {
	 	for (f in fieldids) {
	 		var f = fieldids[f];
	 		if (!f)
	 			continue;

	 		fieldids_hash[f] = true;
	 	}
 	}

 	if (typeof standards_fields_values.FR == "undefined")
 		standards_fields_values.FR = {};
 	if (typeof standards_fields_values.BK == "undefined")
 		standards_fields_values.BK = {};

	last_row = $("#pe-artb-r");
 	for (f in standards_fields) {
 		var has_field = (typeof fieldids_hash[f] != "undefined");

 		var fe = $("#pe-b-"+f+"-i");
 		if (fe[0]) {
			standards_fields_values.BK[f] = fe.val();
			if (has_field) {
				last_row = $("#pe-b-"+f+"-r");
				continue;
			}
 		}

		if (!has_field) {
			$("#pe-b-"+f).remove();
			$("[id^='pe-b-"+f+"-']").remove();
			continue;
		}

		var ff = standards_fields[f];

		var v = (typeof standards_fields_values.BK[f] != "undefined")?standards_fields_values.BK[f]:"";
		var vd = v;
		var s = (ff.size)?ff.size:32;
		var t = ff.type;
		if (ff.use_once == "Y" && $("#pe-f-"+f+"-r")[0]) {
			vd = "same as front";
			t = "hidden";
		}
		var n = 'post_vars[extras][fields][BK]['+f+']';

		var h = "";
				h += '<div class="PExt" id="pe-b-'+f+'-r">';
				h += '<span class="PExtReq" id="pe-b-'+f+'-q">&nbsp;</span>';
				h += '<span class="PExtLabel" id="pe-b-'+f+'-l">'+ff.title+'</span>';
				h += '<span class="PExtValue" id="pe-b-'+f+'">';
				if (t == "textarea")
					h += '<textarea name="'+n+'" id="pe-b-'+f+'-i" rows="3" cols="'+s+'">'+v+'</textarea>';
				else if (t == "hidden")
					h += '<i>'+vd+'</i><input type="hidden" name="'+n+'" id="pe-b-'+f+'-i" size="'+s+'" value="'+v+'">';
				else if (t == "yesno") {
					h += '<select name="'+n+'" id="pe-b-'+f+'-i">';
					h += '<option value="N"'+((v == "N")?" selected":"")+'>No</option>';
					h += '<option value="Y"'+((v == "N")?" selected":"")+'>Yes</option>';
					h += '</select>';
				} else
					h += '<input type="text" name="'+n+'" id="pe-b-'+f+'-i" size="'+s+'" value="'+v+'">';

				h += '</span>';
				h += '</div>';

		last_row.after(h);
		last_row = $("#pe-b-"+f+"-r");
	}
}

$(document).ready(function() {
	check_colors();

	$("a[rel='sdesigns']").live("click", load_design);

	var _dp_i = 0;
	$(".DesignPreview").each(function() {
		_dp_i++;

		var comps = this.id.split("-");
		var d = comps[2];
		var sd, sdp;
		var col;

		sd = standards_designs[d];
		sdp = sd.preview;
		col = 4;

		var os = $(this).offset();
				os.h = $(window).height();
				os.st = $(window).scrollTop();

		var pos = {};
		var adj = 24;
		if (sdp.image_y > sdp.image_x) {
			adj = 48;
			if (_dp_i%col == 0) {
				pos = {corner: {target: 'leftMiddle', tooltip: 'rightMiddle'}, adjust: {x: adj}};
			} else {
				pos = {corner: {target: 'rightMiddle', tooltip: 'leftMiddle'}, adjust: {x: -1*adj}};
			}
		} else if (_dp_i > col) {
			pos = {corner: {target: 'topMiddle', tooltip: 'bottomMiddle'}, adjust: {y: adj}};
		} else {
			pos = {corner: {target: 'bottomMiddle', tooltip: 'topMiddle'}, adjust: {y: -1*adj}};
		}

		var content = '<img src="'+sdp.src+'" width="'+sdp.image_x+'" height="'+sdp.image_y+'" alt="" />';

		$(this).qtip({
			content: content,
			style: {
				width: parseInt(sdp.image_x)+4,
				height: parseInt(sdp.image_y),
				padding: 0,
				tip: pos.corner.tooltip,
				border: {
					width: 2,
					radius: 2,
					color: '#FFBF75'
				}
			},
			solo: true,
			show: {
				delay: 375
			},
			hide: {
				fixed: true,
				effect: {
					type: "slide",
					length: 0
				}
			},
			position: pos,
			api: {
				onRender: function() {
					var self = this;
					var overTarget = false;
					var overTip = false;

					this.elements.target.hover(function(){
						overTarget = true;
					},function(){
						overTarget = false;
						setTimeout(function() {
							if(!overTarget && !overTip) {
								self.hide();
							}
						}, 100);
					});

					this.elements.tooltip.hover(function(){
						overTip = true;
					},function(){
						overTip = false;
						setTimeout(function() {
							if(!overTarget && !overTip) {
								self.hide();
							}
						}, 100);
					});
				}
			}
		});
	});
});