// Copyright Oakley (c) 2009
// requires MooTools :(
// Variables
var g_size1 = "";
var g_size2 = "";
var g_selectedSize = "";
var g_selectedSKU = "";
var g_sizeArr = new Array();
var g_sizeArr1 = new Array();
var g_sizeArr2 = new Array();
var sizeSplit = "";
var default_size = "";
var default_tab = "";
/*
 * On "domready"
 * - Everyone's here! Lets get this party started!
 */
window.addEvent("domready", function(){

	// Setup the sidebar
	new SideRoller($$(".rack-slider")[0], {right: $$(".rack-right")[0], left: $$(".rack-left")[0], visibleChildren: 8, positionSize: 87, scrollSize: 8}); 
	// Setup a listener for the tabs
	$$("ul.tab-bar li").addEvent("click", function(event) {
		event.stop();
		var already_selected = this.hasClass("selected");
		$$("ul.tab-bar li").removeClass("selected");
		$$("div.tab-drawer div").removeClass("show");
		if (!already_selected) {
			this.addClass("selected");
			$(this.getElement("a").href.split("#").getLast()).addClass("show");
		}
	});   
	// Show the Return Policy Tab
	$$(".satisfaction").addEvent("click", function(event) {
		showTab( $( 'tab-returnPolicy' ));
	});
	// Select Quantity
	$$(".quantity-selector").addEvent("click", function(event) {
		event.stop();
		$$(".quantity em").set('html', this.value)
	});
	// Select a thumb to view bigger version
	$$("#zoomer li").addEvent("click", function(event) {
		event.stop();
		
		var this_index = this.getParent().getChildren().indexOf(this);
		var shadowbox_title = this.getElement('img').title;
		select_image_index(this_index, shadowbox_title);
		
	});
	// View Large version of image in lightbox
	$$(".zoomer-img-main").addEvent("load", function(event) {
		$$(".loading").setStyle("visibility", "hidden");
	});
/* Split Sizing
 * - Everything below deals with selecting a size
 */
 	// Setup what is between each size value and which size we are dealing with
 	switch(style.sizing_name){
		case "split shirts":
			sizeSplit = String(" ");
			default_size = style.sizing_name;
		break;
		case "split shoes":
			sizeSplit = String(" ");
			default_size = style.sizing_name;
		break;
		case "split pants":
			sizeSplit = String(" x ");
			default_size = style.sizing_name;
		break;
		default:
			sizeSplit = " ";
	}
	// Setup the different sizes
	// SHOES / SHIRTS
	//*************************************************************************************
	if(default_size == "split shirts" | default_size == "split shoes"){
		// Set the default "fit" is there is one
		$$("#sizeList2 .size-selector").each(function(item) {
			// Set the default for Shirts		
			if(item.getElement("a").rel == "Regular"){
				item.addClass("selected");
				default_tab = item.getElement("a").rel;
			}
			// Set the default for Shoes		
			if(item.getElement("a").rel == "Standard"){
				item.addClass("selected");
				default_tab = item.getElement("a").rel;
			}
			// Set the default sizes
		});
		// Disable sizes that aren't available for the default sku
		$$(".size-selector").each(function(item) {
			g_selectedSKU = current_sku;
			show_available_tab_sizes(g_selectedSKU.id);
		});
		// TABS
			// MOUSEOVER - Display available skus for the upc that the customer rolls over
			$$("#sizeList2 .size-selector").addEvent("mouseover", function(event) {
				show_available_tab_sizes_hover(this.getElement("a").rel);
			});
			// MOUSEOUT - Return everything back
			$$("#sizeList2 .size-selector").addEvent("mouseout", function(event) {
				show_available_tab_sizes(g_selectedSKU.id);
			});
			// CLICK - Select size one
			$$("#sizeList2 .size-selector").addEvent("click", function(event) {
				event.stop();
				$$("#sizeList2 .size-selector").each(function(item) {
					if(item.hasClass("selected")){
						item.removeClass("selected");
					}
				});
				this.addClass("selected");
				default_tab = this.getElement("a").rel;
				show_available_tab_sizes(g_selectedSKU.id);
			});
		// SIZE 1
			// MOUSEOVER - Display available skus for the upc that the customer rolls over
			$$("#sizeList1 .size-selector").addEvent("mouseover", function(event) {
				show_available_tab_skus(this.getElement("a").rel);
			});
			// CLICK - Select size one
			$$("#sizeList1 .size-selector").addEvent("click", function(event) {
				event.stop();
				select_tab_size(this.getElement("a").rel);	
			});
		// SKUs
			// CLICK - Select Product/SKU
			$$(".product-selector").addEvent("click", function(event) {
				event.stop();
				select_tab_sku(this.getElement("a").rel);
			});
			// MOUSEOVER - Display available sizes for the sku that the customer
			$$(".product-selector").addEvent("mouseover", function(event) {
				event.stop();
				show_available_tab_sizes(this.getElement("a").rel);
			});
			// MOUSEOUT - Resets selected sizes to their original status
			$$(".product-selector").addEvent("mouseout", function(event) {
				event.stop();
				show_available_tab_sizes(g_selectedSKU.id);
			});
		// Reset skus to their original class status
		$$(".size-selector").addEvent("mouseout", function(event) {
			$$(".product-selector").each(function(item) {
				item.removeClass("disabled");
				if (g_selectedSKU.id == item.getElement("a").rel) {
					item.addClass("selected");
				}
			});
		});	
	// PANTS
	//*************************************************************************************
	}else if(default_size == "split pants") {
		// Disable sizes that aren't available for the default sku
		g_selectedSKU = current_sku;
		show_available_split_sizes_for_sku(g_selectedSKU.id);

		// SKU - Display available sizes for the sku that the customer
			// Select Product/SKU
			$$(".product-selector").addEvent("click", function(event) {
				event.stop();
				current_sku = skus[this.getElement("a").rel];
				select_split_sku(this.getElement("a").rel);
			});
			// MOUSEOVER - Show whats availible for each sku you hover on
			$$(".product-selector").addEvent("mouseover", function(event) {
				event.stop();
				show_available_split_sizes_for_sku(this.getElement("a").rel);
			});
			// MOUSEOUT - Reset sizes to their original status
			$$(".product-selector").addEvent("mouseout", function(event) {
				event.stop();
				show_available_split_sizes_for_sku(current_sku.id);
			});
			// Reset skus to their original status
			$$(".size-selector").addEvent("mouseout", function(event) {
				$$(".product-selector").each(function(item) {
					item.removeClass("disabled");
					if (current_sku.id == item.getElement("a").rel) {
						item.addClass("selected");
					}
				});
			});
		// SIZE 1
			// MOUSEOVER - Display available skus for the upc that the customer rolls over
			$$("#sizeList1 .size-selector").addEvent("mouseover", function(event) {
				event.stop();
				show_available_size2(this.getElement("a").rel);
			});
			// MOUSEOUT - Reset some stuff
			$$("#sizeList1 .size-selector").addEvent("mouseout", function(event) {
				event.stop();
				show_available_split_sizes_for_sku(current_sku.id);
				//
			});
			// CLICK - Select size one
			$$("#sizeList1 .size-selector").addEvent("click", function(event) {
				event.stop();
				
				var size1Value = this.getElement("a").rel;
				// See if the size is disabled or not and plan  
				if(this.hasClass("disabled") != true){
					displayAvailibility(true,size1Value);
					select_split_size_1(size1Value);
				}else{
					// Since its disabled lets do some logic to display the no availibility message to the user
					displayAvailibility(false,size1Value);
				}
							
			});	
		// SIZE 2
			//  MOUSEOVER - Display available skus for the upc that the customer rolls over
			$$("#sizeList2 .size-selector").addEvent("mouseover", function(event) {
				event.stop();
				show_available_split_skus_2(this.getElement("a").rel);
				
			});
			// CLICK - Select Size 2
			$$("#sizeList2 .size-selector").addEvent("click", function(event) {
				event.stop();
				var size2 = this;
				var enabled = false;
				
				if(size2.hasClass("disabled") != true){
				
					$$("#sizeList1 .size-selector").each(function(size1){
						if(size1.hasClass("selected")){
							enabled = true;	
						}
					});
					
					if(enabled){
						select_split_size_2(size2.getElement("a").rel);
					}else{
						$$("#sizeList2 .sku-size").set("html", "Please select a waist first.");
					}
					
				}
			});	
	// SINGLE / GENERIC STYLES
	//*************************************************************************************
	}else{
		// Disable sizes that aren't available for the default sku
		$$(".size-selector").each(function(item) {
			g_selectedSKU = current_sku;
			show_available_single_sizes(g_selectedSKU.id);
		});
		// Select Product/SKU
		$$(".product-selector").addEvent("click", function(event) {
			event.stop();
			select_single_sku(this.getElement("a").rel);
		});
		// MOUSEOVER - Display available skus for the upc that the customer rolls over
		$$("#sizeList1 .size-selector").addEvent("mouseover", function(event) {
			event.stop();
			show_available_single_skus(this.getElement("a").rel);
		});
		// CLICK - Select size one
		$$("#sizeList1 .size-selector").addEvent("click", function(event) {
			event.stop();
			select_single_size(this.getElement("a").rel);		
		});
		// Display available sizes for the sku that the customer
		// moused over.
		$$(".product-selector").addEvent("mouseover", function(event) {
			event.stop();
			show_available_single_sizes(this.getElement("a").rel);
		});
		// Resets selected sizes to their original status
		$$(".product-selector").addEvent("mouseout", function(event) {
			event.stop();
			show_available_single_sizes(g_selectedSKU.id);
		});
		// Reset skus to their original class status
		$$(".size-selector").addEvent("mouseout", function(event) {
			$$(".product-selector").each(function(item) {
				item.removeClass("disabled");
				if (g_selectedSKU.id == item.getElement("a").rel) {
					item.addClass("selected");
				}
			});
		});
		
	}// END SETUP
	
	// TA: Trigger the selected thumbnail for shadowbox, to avoid duplicates
	jQuery("#zoomer-main a").click(function() {
		jQuery('ul.current li.selected a').trigger('click');
		return false;
	});
	
}); // Party is over, go home!		






// Tab Size Fucntions
//*************************************************************************************
	// Show all availible sizes for SKU
	function show_available_tab_sizes(sku_id){
		selected_sku = skus[sku_id];
		$$("#sizeList1 .size-selector").each(function(size1){
			upc_item = selected_sku.upcs[size1.getElement("a").rel + sizeSplit + default_tab];
			if($defined(upc_item) && upc_item.can_sell){ // Single size
				size1.removeClass("disabled");
				
				if(size1.hasClass("selected") && size2.hasClass("selected")){
					$$(".product-price").set("html", upc_item.price);
					$("web_id").value = upc_item.id;
					$$(".sku-size").set("html", upc_item.tab_size);
					$("availability").removeClass("hide");
					$$("#availability p").set("html", unescapeHtml(upc_item.availability));			
					$("product_options").set("disabled", false);
					$$("#submit-button button").set("disabled", false);
					$("submit-button").removeClass("disabled");
				}
			}else{
				size1.addClass("disabled");
				if(size1.hasClass("selected")){
					$$(".product-price").set("html", upc_item.price);
					$("web_id").value = upc_item.id;
					$$(".sku-size").set("html", upc_item.tab_size);
					$("availability").removeClass("hide");
					$$("#availability p").set("html", unescapeHtml(upc_item.availability));
					$("product_options").set("disabled", true);
					$$("#submit-button button").set("disabled", true);
					$("submit-button").addClass("disabled");
				}
			}				
		});		
	}
	// On tab hover show which sizes are availible for the selected sku
	function show_available_tab_sizes_hover(tab_hover){
		selected_sku = skus[g_selectedSKU.id];
		$$("#sizeList1 .size-selector").each(function(size1){
			upc_item = selected_sku.upcs[size1.getElement("a").rel + sizeSplit + tab_hover];
			if($defined(upc_item) && upc_item.can_sell){ // Single size
				size1.removeClass("disabled");
			}else{
				size1.addClass("disabled");
			}				
		});
	}
	// Show which skus this size is availible in
	function show_available_tab_skus(size1){
		$$(".product-selector").each(function(skuItem) {
			var itemSize =  size1 + sizeSplit + default_tab;

			if ($defined(skus[skuItem.getElement("a").rel].upcs[itemSize]) && skus[skuItem.getElement("a").rel].upcs[itemSize].can_sell) {
				skuItem.removeClass("disabled");
			}else{
				skuItem.addClass("disabled");
				skuItem.removeClass("selected");
			}
		});
	}
	// Select SKU
	function select_tab_sku(sku_id){
		g_selectedSKU = skus[sku_id];
		$$(".product-selector").each(function(item) {
			if (item.getElement("a").rel == sku_id){
				item.addClass("selected");
			}else{
				item.removeClass("selected");
			}
		});
		$$(".product-name").set("html", g_selectedSKU.color);
		$$("#zoomer ul").addClass("hide");
		$$("#zoomer ul").removeClass("current");
		if (g_selectedSKU.large_images.length > 1){
			$("image-selectors-" + g_selectedSKU.id).removeClass("hide");
			$$(".info").removeClass("hide");
		}else{
			$$(".info").addClass("hide");
		}
		$$("div#product-title p span").set("html", g_selectedSKU.number);
		
		select_image_index(g_selectedSKU.current_image_index);
		show_available_tab_sizes(sku_id);
	}
	// Select Size
	function select_tab_size(size1){
		size = size1 + sizeSplit + default_tab
		current_upc = g_selectedSKU.upcs[size];
		$$("#sizeList1 .size-selector").each(function(item) {
			if (current_upc  && (item.getElement("a").rel == current_upc.tab_size)){
				item.addClass("selected");	
			}else{
				item.removeClass("selected");
			}
		});
		if (current_upc) {
			$$(".product-price").set("html", current_upc.price);
			$("web_id").value = current_upc.id;
			$$(".sku-size").set("html", current_upc.tab_size);
			$("availability").removeClass("hide");
			$$("#availability p").set("html", unescapeHtml(current_upc.availability));
			if (current_upc.can_sell) {
				$("product_options").set("disabled", false);
				$$("#submit-button button").set("disabled", false);
				$("submit-button").removeClass("disabled");
			} else {
				$("product_options").set("disabled", true);
				$$("#submit-button button").set("disabled", true);
				$("submit-button").addClass("disabled");
			}
		} else {
			$$(".product-price").set("html", g_selectedSKU.default_upc.price);
			$("web_id").value = "";
			$$(".sku-size").set("html", "Please Select A Size");
		}		
	}
// Split Size Functions
//*************************************************************************************
	// Show availible sizes on page load for the selected/default sku
	function show_available_split_sizes_for_sku(sku_id){
		var calcSize2 = false;
			size1Value = "";
		$$("#sizeList1 .size-selector").each(function(size1){
			$$("#sizeList2 .size-selector").each(function(size2){
				upc_item = skus[sku_id].upcs[size1.getElement("a").rel + sizeSplit + size2.getElement("a").rel];
				// Just to see if we already enabled this option....
				if (g_sizeArr1.contains(size1.getElement("a").rel) != true){
					if($defined(upc_item) && upc_item.can_sell){
						size1.removeClass("disabled");
						g_sizeArr1.push(size1.getElement("a").rel);
						if(size1.hasClass("selected") == true && size2.hasClass("selected") == false){				
							$$(".product-price").set("html", upc_item.price);
							$("web_id").value = upc_item.id;
							$$("#sizeList1 .sku-size").set("html", upc_item.tab_waist);
							calcSize2 = true;
							size1Value = size1.getElement("a").rel;
						}
						if(size1.hasClass("selected") == true && size2.hasClass("selected") == true){
							calcSize2 = true;
							size1Value = size1.getElement("a").rel;
						}
					}else{
						size1.addClass("disabled");
						if(size1.hasClass("selected")){
							$$(".product-price").set("html", upc_item.price);
							$("web_id").value = upc_item.id;
							$$("#sizeList1 .sku-size").set("html", upc_item.tab_waist);
							$("availability").removeClass("hide");
							$$("#availability p").set("html", unescapeHtml(upc_item.availability));
							$("product_options").set("disabled", true);
							$$("#submit-button button").set("disabled", true);
							$("submit-button").addClass("disabled");
						}
						if(size1.hasClass("selected") == true && size2.hasClass("selected") == false){				
							$$(".product-price").set("html", upc_item.price);
							$("web_id").value = upc_item.id;
							$$("#sizeList1 .sku-size").set("html", upc_item.tab_waist);
							calcSize2 = true;
							size1Value = size1.getElement("a").rel;
						}
					}
				}	
			});
		});
		// Reset our array
		g_sizeArr1 = new Array();
		// Size1 is selected so we should figure out what sizes for size 2 are availivle for size1
		if(calcSize2){
			$$("#sizeList2 .size-selector").each(function(size2){
				upc_item = skus[sku_id].upcs[size1Value + sizeSplit + size2.getElement("a").rel];
				if($defined(upc_item) && upc_item.can_sell){
					size2.removeClass("disabled");
					if(size2.hasClass("selected")){
						$$(".product-price").set("html", upc_item.price);
						$("web_id").value = upc_item.id;
						$$("#sizeList2 .sku-size").set("html", upc_item.tab_length);
						$("availability").removeClass("hide");
						$$("#availability p").set("html", unescapeHtml(upc_item.availability));			
						$("product_options").set("disabled", false);
						$$("#submit-button button").set("disabled", false);
						$("submit-button").removeClass("disabled");
					}
				}else{
					size2.addClass("disabled");
					if(size2.hasClass("selected")){
						$$(".product-price").set("html", upc_item.price);
						$("web_id").value = upc_item.id;
						$$("#sizeList2 .sku-size").set("html", upc_item.tab_length);
						$("availability").removeClass("hide");
						$$("#availability p").set("html", unescapeHtml(upc_item.availability));
						$("product_options").set("disabled", true);
						$$("#submit-button button").set("disabled", true);
						$("submit-button").addClass("disabled");
					}
				}
			});
		}
	}	// END show_available_split_sizes_for_sku
	// Show which sizes are availible for the first size
	function show_availible_size1(sku_id){
		$$("#sizeList1 .size-selector").each(function(size1){
			$$("#sizeList2 .size-selector").each(function(size2){
				upc_item = skus[sku_id].upcs[size1.getElement("a").rel + sizeSplit + size2.getElement("a").rel];
				// Just to see if we already enabled this option....
				if (g_sizeArr1.contains(size1.getElement("a").rel) != true){
					if($defined(upc_item) && upc_item.can_sell){
						size1.removeClass("disabled");
						g_sizeArr1.push(size1.getElement("a").rel);
						if(size1.hasClass("selected")){
							$$(".product-price").set("html", upc_item.price);
							$("web_id").value = upc_item.id;
							$$("#sizeList1 .sku-size").set("html", upc_item.tab_waist);
							$("availability").removeClass("hide");
							$$("#availability p").set("html", unescapeHtml(upc_item.availability));			
							$("product_options").set("disabled", false);
							$$("#submit-button button").set("disabled", false);
							$("submit-button").removeClass("disabled");
						}
					}else{
						if(size1.hasClass("selected")){
							$$(".product-price").set("html", upc_item.price);
							$("web_id").value = upc_item.id;
							$$("#sizeList1 .sku-size").set("html", upc_item.tab_waist);
							$("availability").removeClass("hide");
							$$("#availability p").set("html", unescapeHtml(upc_item.availability));
							$("product_options").set("disabled", true);
							$$("#submit-button button").set("disabled", true);
							$("submit-button").addClass("disabled");
						}
					}
				}	
			});
		});
		// Reset our array
		g_sizeArr1 = new Array();
	}
	// Show which sizes are availible for the second size
	function show_available_size2(size1){
		$$("#sizeList2 .size-selector").each(function(size2){
			upc_item = current_sku.upcs[size1 + sizeSplit + size2.getElement("a").rel];
			
			//console.log(upc_item.can_sell + " " + upc_item.size );
			
			if($defined(upc_item) && upc_item.can_sell){ // Single size
				size2.removeClass("disabled");
				if(size2.hasClass("selected")){
					$$(".product-price").set("html", upc_item.price);
					$("web_id").value = upc_item.id;
					$$("#sizeList2 .sku-size").set("html", upc_item.tab_length);
					$("availability").removeClass("hide");
					$$("#availability p").set("html", unescapeHtml(upc_item.availability));			
					$("product_options").set("disabled", false);
					$$("#submit-button button").set("disabled", false);
					$("submit-button").removeClass("disabled");
				}
			}else{
				if(size2.hasClass("selected")){
					$$(".product-price").set("html", upc_item.price);
					$("web_id").value = upc_item.id;
					$$("#sizeList2 .sku-size").set("html", upc_item.tab_length);
					$("availability").removeClass("hide");
					$$("#availability p").set("html", unescapeHtml(upc_item.availability));
					$("product_options").set("disabled", true);
					$$("#submit-button button").set("disabled", true);
					$("submit-button").addClass("disabled");
				}
				size2.addClass("disabled");
			}
		});
	}
	// Reset the sizes back to how they were before the hover
	function show_available_size_2_reset(){
		var hasClassSelected = false;
		var size1Value = "";
		$$("#sizeList1 .size-selector").each(function(size1){
			if(size1.hasClass("selected")){
				size1Value = size1.getElement("a").rel;
				hasClassSelected = true
			}else{
				$$("#sizeList2 .size-selector").each(function(size2){
					size2.removeClass("disabled");
				});				
			}
		});
		// Determine how we should do with the hoverout
		if(hasClassSelected == true){
			// A size1 was selected so we can reset it back to the selected one
			show_available_size2(size1Value);
		}else{
			// A size1 was never selected so we will just reset back to where we were at and disble the size2

			show_available_split_sizes_for_sku(current_sku.id);
		}	
	}
	// Show availible SKUs for size1 for multi size
	function show_available_split_skus_1(size1){
		$$(".product-selector").each(function(skuItem) {
			$$("#sizeList2 .size-selector").each(function(size2){
				var itemSize =  size1 + sizeSplit + size2.getElement("a").rel;
				if (g_sizeArr1.contains(size1) != true){
					g_sizeArr1.push(size1);
					if ($defined(skus[skuItem.getElement("a").rel].upcs[itemSize]) && skus[skuItem.getElement("a").rel].upcs[itemSize].can_sell) {
						skuItem.removeClass("disabled");
					}else{
						skuItem.addClass("disabled");
						skuItem.removeClass("selected");
					}				
				}
			});
			// Reset our array
			g_sizeArr1 = new Array();
		});
	} // END Show availible SKUs
	// Show availible SKUs for size 2 for multi size
	function show_available_split_skus_2(size){
		$$(".product-selector").each(function(skuItem) {
			$$("#sizeList1 .size-selector").each(function(size1){
				if(size1.hasClass("selected")){
					var itemSize = size1.getElement("a").rel + sizeSplit + size;
					if ($defined(skus[skuItem.getElement("a").rel].upcs[itemSize]) && skus[skuItem.getElement("a").rel].upcs[itemSize].can_sell) {
						skuItem.removeClass("disabled");
					}else{
						skuItem.addClass("disabled");
						skuItem.removeClass("selected");
					}
				}			
			});
		});
	}
	// Select Size 1
	function select_split_size_1(size){
		// Check if there is multiple sizes
		g_size1 = size
		$$("#sizeList1 .size-selector").each(function(size1) {
			if (size1.getElement("a").rel == g_size1){
				size1.addClass("selected");	
			}else{
				size1.removeClass("selected");
			}
		});
		$$("#sizeList1 .sku-size").set("html", g_size1);
		$$("#sizeList2 .sku-size").set("html", "Please Select A Length");
		show_available_size2(g_size1);
	}
	// Select Size 2
	function select_split_size_2(size){
		g_size2 = size
		$$("#sizeList2 .size-selector").each(function(size2) {
			if (size2.getElement("a").rel == g_size2){
				size2.addClass("selected");	
			}else{
				size2.removeClass("selected");
			}
		});
		current_upc = current_sku.upcs[g_size1 + sizeSplit + g_size2];
		$$("#sizeList2 .sku-size").set("html", g_size2);
		$$(".product-price").set("html", current_upc.price);
		$("web_id").value = current_upc.id;
		$("availability").removeClass("hide");
		$$("#availability p").set("html", unescapeHtml(current_upc.availability));
		if (current_upc.can_sell) {
			$("product_options").set("disabled", false);
			$$("#submit-button button").set("disabled", false);
			$("submit-button").removeClass("disabled");
		} else {
			//console.log("false");
			$("product_options").set("disabled", true);
			$$("#submit-button button").set("disabled", true);
			$("submit-button").addClass("disabled");
		}
	}
	// Select SKU
	function select_split_sku(sku_id){
		current_sku = skus[sku_id]; 
		$$(".product-selector").each(function(item) {
			if (item.getElement("a").rel == sku_id){
				item.addClass("selected");
			}else{
				item.removeClass("selected");
			}
		});
		$$(".product-name").set("html", skus[sku_id].color);
		$$("#zoomer ul").addClass("hide");
		$$("#zoomer ul").removeClass("current");
		if (skus[sku_id].large_images.length > 1){
			$("image-selectors-" + skus[sku_id].id).removeClass("hide");
			$$(".info").removeClass("hide");
		}else{
			$$(".info").addClass("hide");
		}
		$$("div#product-title p span").set("html", skus[sku_id].number);
		
		select_image_index(skus[sku_id].current_image_index);
		
		// Show whats availible for the selected SKU
		show_available_split_sizes_for_sku(sku_id);
	}
// Single Size Functions
//*************************************************************************************
	// Show Availible Sizes
	function show_available_single_sizes(sku_id){
		selectedSKU = skus[sku_id];
		$$(".size-selector").each(function(item){
			selected_upc = selectedSKU.upcs[item.getElement("a").rel];
			if(selected_upc && selected_upc.can_sell){ // Single size
				item.removeClass("disabled");
			}else{
				item.addClass("disabled");
			}
		});
	}
	// Show availible SKUs for singe size and size 1 for multi size
	function show_available_single_skus(size){
		$$(".product-selector").each(function(item) {
			selected_sku = skus[item.getElement("a").rel]
			if (selected_sku.upcs[size] && selected_sku.upcs[size].can_sell) {
				item.removeClass("disabled");
			}else{
				item.addClass("disabled");
				item.removeClass("selected");
			}
		});
	}
	// Select SKU
	function select_single_sku(sku_id){
		g_selectedSKU = skus[sku_id];
		$$(".product-selector").each(function(item) {
			if (item.getElement("a").rel == sku_id){
				item.addClass("selected");
			}else{
				item.removeClass("selected");
			}
		});
		$$(".product-name").set("html", g_selectedSKU.color);
		$$("#zoomer ul").addClass("hide");
		$$("#zoomer ul").removeClass("current");
		if (g_selectedSKU.large_images.length > 1){
			$("image-selectors-" + g_selectedSKU.id).removeClass("hide");
			$$(".info").removeClass("hide");
		}else{
			$$(".info").addClass("hide");
		}
		$$("div#product-title p span").set("html", g_selectedSKU.number);

		select_image_index(g_selectedSKU.current_image_index);
	
		select_single_size(current_size);
	}
	// Select Size
	function select_single_size(size){
		current_size = size;
		current_upc = g_selectedSKU.upcs[size];
		$$(".size-selector").each(function(item) {
			if (current_upc  && (item.getElement("a").rel == current_upc.size)){
				item.addClass("selected");	
			}else{
				item.removeClass("selected");
			}
		});
		if (current_upc) {
			$$(".product-price").set("html", current_upc.price);
			$("web_id").value = current_upc.id;
			$$(".sku-size").set("html", current_upc.size);
			$("availability").removeClass("hide");
			$$("#availability p").set("html", unescapeHtml(current_upc.availability));
			if (current_upc.can_sell) {
				$("product_options").set("disabled", false);
				$$("#submit-button button").set("disabled", false);
				$("submit-button").removeClass("disabled");
			} else {
				$("product_options").set("disabled", true);
				$$("#submit-button button").set("disabled", true);
				$("submit-button").addClass("disabled");
			}
		} else {
			$$(".product-price").set("html", g_selectedSKU.default_upc.price);
			$("web_id").value = "";
			$$(".sku-size").set("html", "Please Select A Size");
		}
	}
// General Fucntions
//*************************************************************************************
// Display Availibility
function displayAvailibility(canSell_Property,size1Value){
	var noAvail = false;
	$$("#sizeList2 .size-selector").each(function(size2){
		var itemSize =  size1Value + sizeSplit + size2.getElement("a").rel;
		
		if(g_selectedSKU.upcs[itemSize].can_sell == canSell_Property && noAvail == false){
			current_upc = g_selectedSKU.upcs[itemSize];
			$("availability").removeClass("hide");
			$$("#availability p").set("html", unescapeHtml(current_upc.availability));
			noAvail = true;
		}
	});
}
	
	

// Select Image Array - Builds/Swap the product image and thumbs is there is any
function select_image_index(image_index, image_title){
	g_selectedSKU.current_image_index = image_index;
	$$(".loading").setStyle("visibility", "visible");

	var zoomer = $("zoomer");
	zoomer.getElement("a").href = g_selectedSKU.lightbox_images[image_index];
	//zoomer.getElement("a").rel = "shadowbox[slideshow" + g_selectedSKU.id + "]";
	zoomer.getElement("img").src = g_selectedSKU.large_images[image_index];
	//zoomer.getElement("img").alt = image_title;
	//zoomer.getElement("img").title = image_title;
	
	// set up all anchor elements with a "movie" class to work with Shadowbox
    Shadowbox.setup("a.pd_gallery", {
        gallery:            "slideshow" + g_selectedSKU.id,
        autoplayMovies:     true
    });
    
	var ul = $("image-selectors-" + g_selectedSKU.id);
	ul.addClass("current");
	ul.getElements("li").removeClass("selected");
	ul.getElements("li")[image_index].addClass("selected");
	
	var t1 = ul.getElements("li")[image_index];
	var t2 = t1.getElement('a.trigger').title; //("li.selected a.trigger").title;
	zoomer.getElement("img").alt = t2;
	zoomer.getElement("img").title = t2;
	//console.log(t2);
	
	$$(".size-selector").each(function(item) {
		current_upc = g_selectedSKU.upcs[item.getElement("a").rel];
		if (current_upc && current_upc.can_sell){
			item.removeClass("disabled");
		}else{
			item.addClass("disabled");
		}
	});
	
}
// Tabs Setup - Setup the tabs at the bottom of the page for "More Info", "Size Chart" ect....
function showTab( objTab ){
	var already_selected = objTab.hasClass("selected");
	$$("ul.tab-bar li").removeClass("selected");
    $$("div.tab-drawer div").removeClass("show");
    if (!already_selected) {
		objTab.addClass("selected");
		$(objTab.getElement("a").href.split("#").getLast()).addClass("show");
	}
}
// Rack Setup
var SideRoller = new Class({
	initialize: function(element, options){
		this.element = element; // div.rack-slider
		this.list = this.element.getFirst() // div.rack-slider ul
		this.children = this.list.getChildren(); // div.rack-slider ul li
		this.options = options;
		if(this.options.scrollSize){
			this.scrollSize = this.options.scrollSize;
		}else{
			this.scrollSize = 1;
		}
		this.selected = this.list.getFirst('.selected');
		if(this.selected){
			var position = this.children.indexOf(this.selected);
			this.currentPosition = Math.floor(position / this.scrollSize) * this.scrollSize;
		}else{
			this.currentPosition = 0;
		}
		this.options.right.onclick = this.scrollRight.bindWithEvent(this);
		this.options.left.onclick = this.scrollLeft.bindWithEvent(this);  
		this.update();
	},
	isAtFirst: function(){
		return this.currentPosition == 0;
	}, 
	isAtLast: function(){
		return this.currentPosition + this.options.visibleChildren >= this.children.length;
	}, 
	update: function(){
		if (this.isAtFirst()){
			this.options.left.addClass("disabled");
		}else{
			this.options.left.removeClass("disabled");
		} 

		if(this.isAtLast()){
			this.options.right.addClass("disabled");
		}else{
			this.options.right.removeClass("disabled");
		}
		var scroller = this.element.getFirst();
		var start = parseInt(scroller.getStyle("left"));
		var end = -this.currentPosition * this.options.positionSize;
		if(start != end)
		this.element.getFirst().tween("left", start, end);
	},
	scrollRight: function(e){
		if(!this.isAtLast()){
			this.currentPosition+=this.scrollSize;
			this.update();
		}
		return false;
	},
	scrollLeft: function(e){
	if (!this.isAtFirst()) {
		this.currentPosition-=this.scrollSize;
		this.update();
	}
	return false;
	}
});
// Un-escape some html
function unescapeHtml(html){
    var element = new Element('div')
    element.innerHTML = html;
    return element.innerText ? element.innerText : element.textContent;
}
// Add the item to cart
function addToCart(form){
  var myRequest = new Request({method: 'get', async :false}).send({url: '/cart/webservice/cart.php?action=x&web_id=' + form.web_id.value + '&qty=' + form.qty.value});
  new lgw("/inline_cart/?parent_web_id=" + form.web_id.value);
  return false;
}